見出し画像

ディープラーニングの学び方【FASTAI】

こんにちは。シンラボ共同代表、草場です。

昨日に引き続き、ディープラーニングを使いこなすのに有用なコンテンツ、FASTAIに関してです。これはほんと全員にやってほしいです。シンラボでは朝活を実施中です。スポーツを学ぶかの如く、使いながら学ぶのがコンセプトです。無料で勉強可能!

昨日は、どれほどディープラーニングが有用かを見ましたが、今回はディープラーニングの学び方です。

ディープラーニングの学び方
ハーバード大学のデビッド・パーキンス教授は、教えることについて多くのことを語っています。基本的な考え方は、「ゲーム全体を教える」ということです。つまり、野球を教えるのであれば、まず野球の試合を見に行ったり、プレーをさせたりします。紐を巻いて野球ボールを作る方法や、放物線の物理学、バットに乗ったボールの摩擦係数などは教えません。

考えてみたらその通りですよね。しかし、残念ながら、ディープラーニングに関する一般的な教材は、やりながら学ぶスタイルではなく、理論から入るスタイルです。微積が必須とか、行列が必須とか、聞きますよね?

ヘシアンの定義や損失関数のテイラー近似の定理を学習者に教え、実際に動作するコードの例を示すことはありません。私たちは微積分を非難しているわけではありません。私たちは微積分を非難しているわけではありません。シルヴァンは微積分を大学レベルで教えていたこともありますが、ディープラーニングを学ぶ際に微積分を始めるのは最適ではないと考えています。

ディープラーニングの学習で大事なのは、モデルを作り、良い精度を出したい、というモチベーションの方です。

ディープラーニングでは、モデルを修正してより良い結果を出したいというモチベーションがあれば、とても役に立ちます。そのためには、関連する理論を学び始める必要があります。しかし、そもそもモデルがないといけません。私たちは、ほとんどのことを実例を通して教えています。その実例を作りながら、さらに深く掘り下げていき、プロジェクトをより良いものにする方法を教えていきます。つまり、必要なすべての理論的基礎を、文脈の中で、なぜそれが重要なのか、どのように機能するのかがわかるように、徐々に学んでいくことができるのです。

これを読んでいると、楽しくなりますよね?自分がやりたいことを実現するためにディープラーニングがあり、実践を通して少しずつ理論を学ぶ。これならできそうです。
FASTAIは以下の原則に沿って作られています。

①ゲーム全体を教える:まず、シンプルで表現力豊かなツールを使って、実世界の問題を解決するために、完全に動作し、非常に使い勝手の良い、最先端の深層学習ネットワークを使用する方法を紹介していきます。そして、それらのツールがどのように作られているのか、また、それらのツールを作るツールがどのように作られているのかなど、徐々に理解を深めていきます。

②常に例を挙げて教える:代数的な記号操作から始めるのではなく、直感的に理解できる文脈や目的があることを確認していきます。

③可能な限りシンプルに:私たちは何年もかけて、これまで複雑だったトピックを非常にシンプルにするツールや教授法を構築してきました。

④障壁を取り除く:深層学習は、これまで非常に排他的なゲームでした。私たちはこのゲームをオープンにして、誰もがプレイできるようにしています。

全体像がつかめて、実例から学び、シンプルに学べる。しかも障壁なく。なんとも素晴らしいです。まずはやってみる、です。

十分なデータがあるかどうか、データが正しい形式であるかどうか、モデルが正しくトレーニングされているかどうか、もしそうでなければどうすればよいか、などをどうやって知ることができるでしょうか?
そのために、私たちは「やってみることで学ぶ」ことを大切にしています。データサイエンスの基本的なスキルと同様に、深層学習についても、実践的な経験を積むことでしか上達しません。理論に時間をかけようとすると、逆効果になることもあります。
重要なのは、ただコードを書き、問題を解決しようとすることです。理論は、文脈やモチベーションがあるときに、後から考えればいいのです。

やはり楽しいですね。明日も勉強します。

草場壽一
https://sinlab.future-tech-association.org/


この記事が気に入ったらサポートをしてみませんか?