ディープラーニングがちょっとだけ分かってきた!
てか、どうやって実装すればいいのかわからない。
僕もそろそろ現実の問題を解きたい!!
だけど、難しそう…!
まずは、いろいろなケースコードを見ながら勉強したい!
そんな方に見て頂きたい記事です。
この記事では、ディープラーニングの数学的仕組みを理解してから読んだ本を、感想とそのときの僕のレベルを記述しながらまとめていきます。
ちょうど時期的には、下の本を全て読み終えたところです!




数学的には理系の大学1年を終えていれば問題なく読めます!(微分積分・線形代数)
習っていなくても、高校2年で習う微分が分かれば、まあ、いける…!といった感じです。
Contents
PythonとKerasによるディープラーニング
時期 ~大学3年夏休み~
ディープラーニングの数学的仕組みはわかったけど、どうやってそれを実装するのかわからない!という時期に読みました。
どういった問題に対してはどのモデルを使用すればよいのかが分かるので、とてもよかったです。
読了目安
文章自体を読み終えるのは、電車の移動時間などの隙間時間を使いながらで、10日くらいで終わりました。
コードと、文章が半分半分なので、コードの部分を流し読みする分にはそこまで重たくはありません!
いぶきんぐのレベル ~ディープラーニングやってみたい~
とりあえずどんな問題でもディープラーニングで解ける気がする!
どんな問題でもどんとこーい!
みたいなレベルのときです。
何ができて、何ができないのかはザックリ理解はしていますが、解ける問題を具体的にどのように実装すればよいのかは理解していない状態でした。
この本を読めば、その問題を解くのにどれくらいの手間がかかるのかなど、かなり具体的に把握することができるようになると思います。
しかも、基礎から発展的な内容まで、順番に網羅しているので、これまたとてもおすすめです。
内容は、コンピュータビジョン(CNN)、時系列処理(RNN)、LSTMによるテキスト生成、オートエンコーダによる画像生成と多岐にわたります。
感想 ~初めての実装なら、まずこの本!~
ものすごくわかりやすいです!!
ディープラーニングを取り扱うためのフレームワークは色々と存在しているのですが、「ディープラーニングは初めてだよ!」という方にお勧めなのが、この本で紹介されているKerasです。
少ないコードで、読みやすく、しかもわかりやすくディープラーニングのモデルを組むことができます。
初めのうちはものすごくこだわったモデルを作成する頻度も少ないと思うので、数学を意識しながら変数を埋めていくと復習にもなってよいと思います!
もちろん、Kerasでも複雑なモデルを作成することはできますが、それよりも、簡単に作成できることが強みなので、それを活かしてあげればと思います。
文章自体を読むのはすぐに終わりましたが、実際にコードを自分のパソコンで動かしてとなると、なんだかんだ、1章あたり1週間くらいかかるので、全体で2か月くらいかけて読んでいました。
ちなみに、この本をベースにkerasチュートリアルを作成しました!もし、本の中身が気になる方はチュートリアルを是非、ご覧になってみてください!
雰囲気が分かると思います。



現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装
時期 ~大学3年の10月~
ちょうど研究所のアルバイトで、ディープラーニングを使用して解析をする研究がスタートしたことが読み始めたきっかけです。
研究所全体がPytorchを使用していたので、僕ももれなくその一員になりました。
読了目安
この本を読んだ目的が、Pytorch独特の書き方のマスターと、普段使いするために便利な自作関数をどういった形式で作ればよいのかを参考にするためだったので、必要な部分をかじる形式で読みました。
だいたい、1週間くらいで、必要な部分のコードを自分専用に書き換えることができました。
いぶきんぐのレベル
Kerasは書いたことある!
けれども、Pytorchは全くの初心者!といった状態で読み始めました。
感想 ~目的が明確だからコードが拡張しやすい!~
本を読んだ感想は、「こんなことの自分で書くのか!」でした。
最初は、Kerasと比較をして、コードを書く量が増えた上に、今まで意識しなくてもやってくれていた処理を自分で記載しないといけないことにビックリしていました。
ですが、慣れると圧倒的に自分用にカスタマイズがしやすいです。
そして、何とも言えない、かゆいところに手が届くライブラリとドキュメントの豊富さです。
Kerasでは、「こういうものだから」となんとなく納得していた部分をきっちり自分で書くので更なる理解をすることができます。
これだけ、聞くと
という気分になるかもしれません。
ですが、実はそうでもなくてライブラリが豊富で、一行ちろっと書くだけで
こんな自由なモデルも作成できるのか!
これだけで、微分してくれるのか!!
と感動するとも多々あります。
どちらがいいというわけではなくて、場面に応じて適切な方を自由に選択できるようになっておくとハッピーですよね!
そういった意味でこの本は、Pytorch入門にうってつけです!!
順番的には、Kerasで慣れてから入るのがおすすめです。
理由は、「ここはKerasで省略されていたけど、Pytorchでは書く必要があるのか」と比較をすることができるからです。
そして、なによりPytorchで自分専用の関数を作るときのアイデアとしてKerasを使っているときの記憶が大いに役立つからです!
これは、意外と盲点なのですが、Kerasにある関数を一度自作しておくとPytorchでもKerasとほとんど同じように扱えてしまうのです!!
(当たり前かも?)
このおかげで、分析がかなり楽になりました。
タイトルにある通り、現場で使えるコードがたくさん載ってるので、今すぐに使いたい!という方にお勧めです。
つくりながら学ぶ! PyTorchによる発展ディープラーニング
時期 ~大学3年11~12月~
Pytorchになれたので、せっかくPytorchを扱うのでより詳しく知るために、年末にじっくりと読んでいました。
読了目安
発展的な内容なので、消化するのに時間がかかりました!
隙間時間を見つけて読んでいましたが、それでも、2か月はかかりました。
いぶきんぐのレベル
Pytorchのルールはもうok!
でも、まだまだ、Pytorchを使いこなせている感はない!もっとできることを増やしていきたい!という状態のときによみました。
感想
実をいうと、Pytorchを初めて一番最初に手に取った本がこれでした。
結論から言うと、当時は難しすぎて全然内容が頭に入ってきませんでした。
Pytorch独特の初めての概念に加えて、ディープラーニング自体が難しいからです。
というのも、この本では、ほんとに発展的な最先端の情報がかなり具体的に載っているからです!
今まで、登場することがなかった、物体検出(SSD)、セグメンテーション(PSPNeT)、姿勢推定(OpenPose)、異常検知(AnoGAN)、感情分析(BERT)、動画分類(3DCNN , ECO)などが出てきます。
なので、最初に、Pytorchの常識になれてから数学を理解するために読むとすんなり入ってくると思います。
僕自身まだ、コードを実際に動かすことはしていません。アルゴリズムを理解して、こんなことができるのか~。こういった原理で動作しているのか~といったことをインプットした状態で終わっています。
今は、まだこの知識を必要とするシチュエーションではないので、アイデアの種のひとつになればという思いで、脳内保存しています。
必要になったら、また、深めていきたいと思っています!
最後に
順を追って本を読んでいくとかなり習得が早くなると感じた一年でした。
昨年は、本に対しての課金を一切躊躇することなく行っていきました。
そのおかげで、かなり成長をすることができたと思います。
来年も、自己投資として、ガンガンお金をかけていきたいです!!
プログラム初心者の方はこちらがおすすめです!



ディープラーニングの理論を知りたい方はこちらの記事がおすすめです。




タイピングもままならない完全にプログラミング初心者から
たった二ヶ月で
応用も簡単にできる…!!
という状態になるまで、一気に成長させてくれたオススメのプログラミングスクールをご紹介します!


