読書・勉強会

ゼロから作るDeep Learningが難しい人がする準備

機械学習 AI 違い

ゼロから作るDeep Learningとは

ゼロから作るDeep LearningはDeep Learning(深層学習)の実装をPythonコードで体験し、理解するための本です。

ゼロから作るDeep Learningのつらみ

本書は全く知識がない人でもわかるように、Pythonの基礎・行列の基礎・微分の基礎を説明してくれます。ただし伝えたいメッセージはディープラーニングなので、どれも深く踏み込まずさらっと説明します。頭のいい人なら理解できますし、正しく調べながら読み進められる人は、本書を読んで理解できるかと思います。

頭も良くないし、正しく調べられない人はどうしたらいいんでしょう?

そんな人のために本記事を書きました。私が本書を読んで感じたつらみポイントは以下です。

  • 1次関数のグラフを描いたことがないと出だしでかなりつらみ
  • 行列の計算の基礎を理解していないと途中かなりつらみ
  • 微分の計算の基礎を理解していないと途中かなりつらみ
  • 図解が正確で正しいが、抽象的に理解できない人はつらみ
  • 数学に抗体がないとつらみ

「deep learningって何だろう?」と本書を読み始めても、数式がたくさん出てきて心が折れる人は多いと思います。それでも4章くらいまでは読んでみて欲しいです。

そこまで読んでいくとdeep learningを面白く感じて来るはずです。内容自体に興味はあるのに難しいと感じているみなさんを応援できる記事になればいいと思います

まずはdeep learningの立ち位置を理解しておこう

まずはdeep learning(深層学習)がどういう立ち位置なのか、ざっくりと理解しておきましょう。

機械学習 AI 違い

昨今はAI、機械学習など色々なワードが飛び交っていますが、本書で取り上げている内容はニューラルネットワークとディープラーニングがメインです。上の図で色を塗った箇所になります。

本を読み終わる頃には十分に理解できるかと思うのですが、読む前に「今からここの勉強をするんだ」と意識しておくだけでも理解に差がつくと思います。

大学1年生レベルの数学力を身につけるために

私が本書を読む基礎を全て習得したのが大学1年生ですが、中学高校で全て習う人もいるかもしれません。正確には、以下のようなことを知っておく必要があります。3段階にランク分けしました。

必須(知ってないとさっぱりわからない。正直ここがわからない場合は無理かも。)

  • グラフの描画、y = ax + bのグラフと聞いてすぐに描けるくらいの知識
  • 関数f(x)という計算式の意味がわかる

ほぼ必須(知ってないと読み進められないけど、勉強しながら進められるかも。)

  • 行列と行列の掛け算の知識
  • 微分が何か理解していること
  • 微分の演算の式を理解していること

あった方が良い(この辺りを知っておくと、5章:誤差逆伝播法でも理解できる。)

  • n次関数、指数関数、対数の当たり前の微分が計算できる
  • 行列について、正方行列、単位行列、転置行列などを理解している

どうやって勉強するべきか

微分積分・行列が全く初めてなら、教科書を買って勉強した方がいいとは思います。アルゴリズム・モデルの理論実装をできるようになりたいのであれば、必須の知識となってきます。

大学時代に学んだ本を載せていますが、AIブームに乗って講義用の教科書以外にも、線形代数のわかりやすい本は増えてきました。Amazonで微分線形代数の本を検索していただくといいと思います。

優秀なブログを利用する

教科書を手に取らなくても、ブログにしてくれている方も多くいますし内容のわかりやすい記事も多いです。

静岡理工科大学情報学部コンピュータシステム学科・知能インタラクション研究室の行列

Sci-pursuit|微分とは何か? - 中学生でも分かる微分のイメージ

この2つのページをさらっと見ておくと、本書を読み進めていく上で役に立ちます。また練習問題をいくつか解いてみると理解度が大きく変わってくると思います。

直感的に理解するために

理数系のバックグラウンドがない人にとって、数式だけで理解することは無理だと思います。だから時々直感的なアプローチをとった方がいいです。

入力も重み層も出力も、全て行列で扱われるために何が何を表現しているかわからなくなる時があります。そんなときはすぐに数式から離れて、わかりやすい動画で理解しましょう。

一番わかりやすい動画でした。英語がわかればなお良しで、この動画だけでも十分勉強になります。

アートを感じる動画です。言葉による説明はありませんが、数あるニューラルネットワークのいくつかを動画で示してくれます。さまざなニューラルネットワークの存在を知り、直感的に違いを理解できます。

「0から作るdeep learning」で扱う内容よりも広く説明していますが、後半でされるニューラルネットワークの説明がわかりやすいです。

日本語の綺麗でわかりやすい動画はまだ少ないですね。

偉大な先駆者達の記事

miyamo765さんのゼロから作るDeep Learning 4章「ニューラルネットワークの学習」

4章の初学者がハマりそうな微分積分を数式で解いたり、Pythonで実装して可視化したり、本書の中で紹介しきれていない部分を補ってくれています。4章で手が止まりそうな人は一度見ていただきたいです。

@yakof11の【学習メモ】シリーズ

例えば【学習メモ】ゼロから作るDeep Learning【5章】です。一番嬉しいポイントは本書の中で割愛している公式の証明などを書いてくださっているところです。またコードでの実装も載せてくれています。

stillalive0304さんのDL4US落ちたので、書籍『ゼロから作るDeeplearning』をやるしかない

本の内容を全体的にさらってくれています。

この節は随時更新していければと思います。

【終わりに】どこまで理論を理解していればいいの?

この節はとても主観的なので、興味のない人は読み飛ばしてください。

自分がどんな人材になりたいか、どういう経歴かに依存すると思います。ただ、本書で出てくるニューラルネットワークの実装を、何も見ずに行えるレベルになれると、まずは良いかと思います。

逆に言うとそれ以上踏み込む必要はないです。ディープラーニングと言う形で第3次AIブームが来て4,5年(どこを起点にするかに依りますが)ほど経ちますが、理論の領域では優秀な学者や大学の研究室の猛者たちがトップを走り続けています。それはAIブームが来る前からです。そんな人たちに勝てる訳がありませんし、大抵の人は勝つ必要もないはずです。(論文を発表していく側の人たちくらいです。この人たちはもはや「勝つ」とか考えていないかもしれませんが)

第3次AIブームに乗っかって企業もどんどんAI人材を登用するようになり、その波に乗るため必死で勉強した人たちで上がすでに詰まってきているような印象です。少なくとも東京の某IT企業で働きながら各社のAI系のお話をよく聞いているとそう思います。

ではどういった人が求められるかと言うと機械学習系のインフラ・運用基盤を整えられる人かと思います。実際MLエンジニアはモデルを考える他に、前処理、モデルの管理、データの整形・取得、ビジネスへの実装などなど、他の仕事を請け負いながら働いています。この仕事を吸収できる人材がまだ不足しているということを、カンファレンスなどに参加するとよく聞きます。

地方の企業やAI導入できていない小さな会社もたくさんあるので、そこで活躍する道も考えたのですが、そもそもそういった企業はデータを管理していないと思います。そのためどんなデータを取得して、どう蓄積していくか考え、環境を構築する能力が必要となります。

ビジネス依りの話になりましたが、AI人材として活躍するにはインフラの知識を兼ね備えている人に今後チャンスがありそうだと感じています。MLOpsなどで検索すると色々と出てくるので、検索してみてください。無闇に数学と理論の沼に入っていくのではなく、必要性を感じるタイミングが来た時に学ぶだけで十分です。本書(その他書籍でも)の踏み込まない理論にはあえて踏み込まない読み方でいいと思います。

ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki