機械学習

【初心者向け】ディープラーニングの学習ロードマップまとめ

ウマたん
ウマたん
当サイト【スタビジ】の本記事では、ディープラーニングの学習方法について詳しくまとめていきます!ディープラーニングは難しいと思われがちですが、アルゴリズムは意外とシンプルで実装自体も非常に簡単なんです!Pythonでの実装もおこなっていきますよー!

こんにちは!

消費財メーカーでデジタルマーケ&データサイエンティスト的なお仕事をしているウマたん(@statistics1012)です。

最近はどっぷりディープラーニングに浸かっています。

ディープラーニングってなんだか難しいイメージがあるかもしれませんが、案外シンプルでそんなに難しくないんですよー!

ロボたん
ロボたん
ディープラーニングって複雑なイメージがあるけど、そんなことないの??
ウマたん
ウマたん
もちろん簡単ではないけど、基礎的な部分は非常にシンプルなんだ!!

この記事では、そんなディープラーニングを初心者がある程度のレベルまでマスターするまでの学習ロードマップをまとめました。

理論と実装の2つの視点から見ていきましょう!

ディープラーニングとは

さて、まずはディープラーニングとは何なのかカンタンに見ていきましょう!

ウマたん
ウマたん
動画でも10分ほどで分かりやすく解説しているのでぜひチェックしてみてください!

得たいの知れないモノの正体をクリアにしていくことで学習へのハードルがグッと下がりますよー!

ウマたん
ウマたん
まずは、ディープラーニング=新しくて複雑なモノというイメージを払拭だ!

実は、ディープラーニングの原型は1940年代から存在していたと言われています。

ロボたん
ロボたん
え!?そんなに昔からあるの!?
ウマたん
ウマたん
そうなんだよー、最新の技術だと思われているんだけど既に理論自体はだいぶ昔から確立されていたんだ!

1940年~1950年にかけて人間の神経を模した仕組み「ニューラルネットワーク」が確立されました。

人間の神経が信号を伝播させていくようにある入力を次の層へと重み付けをして伝播させていき出力を求めます。

ロボたん
ロボたん
なんで今さら50年以上も前の手法が注目されてるの?
ウマたん
ウマたん
当時の状況では層を積み重ねていくことができなかったんだ!

この層を多層にしていくのがディープラーニングなのですが、当時のマシンパワーでは計算量が膨大過ぎて実現不可能でした。

計算負荷を軽減する誤差逆伝播法(バックプロパゲーション)などの計算手法の登場やマシンパワーの増強により現在に至ります。

そんな計算負荷の問題が解消され深層ニューラルネットワーク(ディープラーニング)が日の目を浴びたのは2006年。

このブレークスルーによって再びAIのブームが巻き起こり、第3次AIブームへと突入していくのです。

意外とディープラーニングの原点は古く最新の複雑なアルゴリズムではないということを覚えておいてください!

ディープラーニングに関して詳しくは以下の記事をチェック!

【入門】ディープラーニングとは?仕組みとPythonでの実装を見ていこう!当サイト【スタビジ】の本記事では、ディープラーニングの仕組みやPythonでの実装方法について解説していきます。ディープラーニングってなんとなくブラックボックスなイメージがあるかもしれませんが、実はシンプルなアルゴリズムなんですよー!...

ディープラーニングで出来ること

さて、ディープラーニングの全体像が分かったところで、どんなことが実現できるのか見ていきましょう!

画像識別

ディープラーニングと言えば、画像認識!!

Mnistという手書き文字を実際に分類してみたコードを以下に載せておきます。

Mnistは「Gradient-based learning applied to document recognition」で用いられたデータセットであり、現在でも多くの論文で用いられています。

Modified National Institute of Standards and Technologyの略であり、0~9の数字が手書き文字として格納されているデータセットです。

学習用に60000枚、検証用に10000枚のデータセットが格納されています。

詳細は省きますが、最終的にテストデータに対して96.96%の精度を算出することができました。

なかなか判別の難しい手書き文字も入っているのでなかなかの精度。

以下の記事で詳しくまとめています。

【入門】ディープラーニングとは?仕組みとPythonでの実装を見ていこう!当サイト【スタビジ】の本記事では、ディープラーニングの仕組みやPythonでの実装方法について解説していきます。ディープラーニングってなんとなくブラックボックスなイメージがあるかもしれませんが、実はシンプルなアルゴリズムなんですよー!...

文脈を読み取る

また、ディープラーニングを用いて文章を予測したり文脈を読み取ることが可能です

ここで登場するのがRecurrent neural network(再帰型ニューラルネットワーク)

RNNと略されて呼ばれます。

RNNを用いて時系列問題を解いてみましょう!

使うデータセットはKaggleのホームページが落とせる航空会社の乗客数データ!

1949年から1960年までの月別乗客数がデータとして入っています。

149行2列のシンプルなデータセット。

1変数の時系列データを基に過去のデータから未来の値を予測します。

この時、tflearnというライブラリを使ってRNN(正確にはLSTM)を実装していきます。tflearnはkerasと似たようなライブラリでディープラーニングの実装が感覚的に容易にできます。

実際にモデルを構築していきましょう!

最終的な評価はRMSE(Root Mean Square Error)で算出しています。

RMSEは0.10079201となりました。

それなりに良い予測ができてる!

RNNについては以下の記事で詳しくまとめていますのでチェックしてみてください!

RNNとは
RNN(回帰的ニューラルネットワーク)とは?Pythonでの実装方法と一緒に見ていこう!当サイト【スタビジ】の本記事では、ディープラーニングを時系列にも対応させたRNN(リカレントニューラルネットワーク)について解説していきます。RNNの仕組みや応用場面と一緒にPythonでの実装をしていきます。これからの応用が期待される領域なんですよー!...

ここでは一部だけ取り上げましたが、ディープラーニングで出来ることはもっともっと幅広いんです!

ディープラーニングで出来ることをもっと知りたい方は、以下の記事をチェックしてみてください!

ディープラーニング できること
ディープラーニングができることとできないこと!Pythonでの実装例とともに見ていこう!当サイト【スタビジ】の本記事では、ディープラーニングができることとできないことについて適宜Pythonでの実装例をはさみながら解説していきます。何でも出来ると思われがちなディープラーニングについてちゃんと理解しておきましょう!...

ディープラーニングの学習ロードマップ

さて、ディープラーニングの全体像・出来ることが分かったところで本題に入りましょう!

ディープラーニングをマスターするためには、どのように学習していけばよいのか。

CNNでの画像識別が出来るところまでを目指します。

ディープラーニング学習は、以下の4ステップ!

Step1:基礎固め
Step2:ディープラーニングの概論
Step3:ディープラーニングの理論
Step4:ディープラーニングの実装

それぞれについて具体的に見ていきましょう!

Step1:基礎固め

ディープラーニングをしっかり学んでいくためには、まず

・基本的な統計学の知識
・機械学習手法の理論
・Pythonスキル

が前提として必要です。

この3つの最低限知識・スキルを固めず、ディープラーニングを学習しても効率が悪いですし頭デッカチになっちゃいます。

遠回りに思えるかもしれませんが、しっかり順を追って学ぶことが後々効いてきます。

それぞれについては以下の記事を参考にして学習を進めてください。

統計学入門に必要な知識と独学勉強方法を簡単に学ぼう!当ブログ【スタビジ】の本記事では、統計学入門に必要な知識をカンタンにまとめ、それらをどのように効率的に独学で勉強していけばよいかをお話ししていきます。統計学は難しいイメージが少しありますが、学び方をしっかり考えれば大丈夫!...
機械学習
機械学習入門に必要な知識と勉強方法をPythonとRの実装と一緒に見ていこう!当サイト【スタビジ】の本記事では、入門者向けに機械学習についてカンタンにまとめていきます。最終的にはどのように機械学習を学んでいけばよいかも見ていきます。細かい手法の実装もPython/Rを用いておこなっていくので適宜参考にしてみてください。...
Python 勉強
【入門】初心者が3か月でPythonを習得できるようになる勉強法!当ブログ【スタビジ】の本記事では、Pythonを効率よく独学で習得する勉強法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...

この時に注意して欲しいのが、「統計学・機械学習の知識」と「Pythonスキル」は切り分けて勉強するのではなく並行して学習を進めていってください。

そうすることで理解が深まり効率が高まります。

知識だけ入れてから・・・と進めると挫折します。

Step2:ディープラーニングの概論

さてさて、基礎固めが出来たらディープラーニングの理論と概論に移りましょう!

まずディープラーニングの将来性や現状・そしてどのようにビジネスに活用されているかについて学びましょう。

ディープラーニングはあくまで手段です。

ディープラーニングを使って何がしたいかを明確にしておかないと学習効率は上がりません。

ふわっとしていても良いので、Step3に進む前にディープラーニングを学習した先に目指すものをつくりましょう!

たくさん書籍が出ていますが、以下の2つが個人的にはよかったです。

created by Rinker
¥1,760
(2020/11/30 21:59:58時点 Amazon調べ-詳細)

東大の松尾教授は、日本のディープラーニング第1人者。

ぜひチェックしてみてください。

Step3:ディープラーニングの理論

概論のイメージを膨らませたら続いては本格的な理論の学習に入っていきましょう!

ディープラーニングの理論の学習には書籍がもっとも適しています。

名著「ゼロから作るディープラーニング」!

この本に出会いディープラーニングの魅力に取りつかれました。

パーセプトロンの話からニューラルネットワークに入り、そこからCNNまで解説しています。

タイトルの通り0からアルゴリズムを組み立てていき、Pythonで0からコーディングしていきます。

とにかくめちゃくちゃ分かりやすいです。

必読の1冊。

理論はこの1冊読んでおけば基本問題ないです。

また、「ゼロから作るディープラーニング②」では、自然言語処理の領域に利用されているRNNについて詳しく解説しています。

created by Rinker
オライリー・ジャパン
¥3,960
(2020/11/30 03:37:40時点 Amazon調べ-詳細)

少々レベルが上がりますが、興味のある方は読んでみるとよいでしょう!

ディープラーニングの書籍を以下の記事でまとめていますのでチェックしてみてください!

書籍
ディープラーニングを学習する上でオススメな本と勉強法当サイト【スタビジ】の本記事では、ディープラーニングを学習するのにオススメな本と勉強法について紹介していきます。ディープラーニングだけ分かっても意味がありません。まずは、データサイエンスの基本である機械学習手法を理解してPythonで実装できるまでになりましょう!...

ビジネスサイドからディープラーニングの活用を学べる書籍も紹介していますよー!

Step4:ディープラーニングの実装

PC

理論のStepでは、ディープラーニングがどんなアルゴリズムで動いているかを理解するためにゼロからPythonで実装してみましたが、実際の場面でゼロから作り上げることは多くありません。

実装するだけなら便利なライブラリが用意されていてライブラリを呼び出すだけで実装が可能なんです。

ライブラリ実装によるディープラーニングはオンラインスクールもしくはオンライン動画で学習するとよいでしょう!

オンラインスクールはいくつかありますが、Techacademy(テックアカデミー)のAIコースを受講してみてパーソナルメンターのクオリティが高かったのでおすすめです!

このコースでは、機械学習の初歩的な内容からCNN(畳み込みニューラルネットワーク)の実装まで学びます。

【体験談】テックアカデミー評判は?3か月本気受講してみたので徹底レビュー!当ブログ【スタビジ】では、様々なプログラミングスクールの中からテックアカデミーのメリット・デメリット・評判について3か月の体験談をもとに赤裸々にレビューしていきます。...

教材のクオリティは高くないので先ほどの書籍「ゼロから作るディープラーニング」と並行して進めるのがオススメです。

また、オンライン学習サービスのUdemyに多くのディープラーニングコースがいくつかあるのでぜひチェックしてみてください。

\30日間返金無料/

Udemy レビュー
【体験談】評判の良いUdemyを実際に20コース受けてみてレビュー!当サイト【スタビジ】の本記事では、世界最大のオンライン学習プラットフォームであるUdemyのメリット・デメリット・評判・口コミについてまとめていきます!実際にPython関連のコースを20個受講して分かった体験談をもとにお伝えしていきます。...

例えば、以下のコースなんかはGAN手法を使って、存在しない画像を新たに生成していきます。

Udemy コース GAN

ゴッホのスタイル変換を実際にGANのモデルを組んで実装していきます。

通常の写真にゴッホのスタイルを入れるなんてことが、ディープラーニングを使えば出来ちゃうんです!

ゴッホ ディープラーニング

(引用元:https://github.com/jcjohnson/neural-style)

CNNについて学んだあと、さらにディープラーニングを深く知りたい場合こちらのコースを受講してみると良いでしょう。

また、ディープラーニングを使ったWebアプリケーションを作成していくカリキュラムもあります。

Udemy コース AIFlask

当サイトでもFlaskでWebアプリケーションを作り込む記事を公開していますが、Flaskは非常に簡易的にWebアプリケーションを作れるPythonのフレームワーク!

macとsurface
PythonのFlaskで簡単なWebアプリケーションを作ってみよう!当サイト【スタビジ】の本記事では、Pythonの軽量WebアプリケーションフレームワークであるFlaskを使って簡単なWebアプリケーションを作成していきたいと思います。Pythonを開発言語としても使えるようになると、幅が広がりますよー!...

そんなFlaskを使って画像分類のWebアプリケーションを作っていきます。

さらに最終的にはXcodeでiOS化も行っていくという盛りだくさんのコース

ディープラーニングとFlaskでの開発を同時に学べるお得な内容になっていますよー!

FlaskはDjangoよりも簡単に実装できるWebアプリケーションフレームワーク。

以下の記事で2つのフレームワークを比較していますので目を通してみてください!

Flask Django
Flask vs Django!PythonのWebアプリケーションフレームワークを徹底比較!当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークである「Flask」と「Django」の違いを徹底的に比較していきます!なんとなーく分かっているようで分からない2つのフレームワークの違いをこの機会にしっかりおさえておきましょう!...

ディープラーニングの学習をしっかり集中的に行うのであればプログラミングスクールもオススメです。

以下の記事でまとめているのでぜひチェックしてみてください!

ディープラーニング スクール
ディープラーニング(深層学習)が学べるスクールおすすめ3選!【データサイエンティストが選ぶ】 スクール名 オススメ度 価格の安さ サポート体制 公式サイト Aidemy ...

ディープラーニングの学習で注意すべき点とアドバイス

ディープラーニングの学習ロードマップ、無事進められそうでしょうか?

最後に学習をしっかり完遂し初心者脱却するために注意すべき点とアドバイスをまとめておきます。

学習の一助になれば幸いです。

ディープラーニングで最終的に何がしたいかを明確に

ディープラーニングは手段でしかないので、ディープラーニングを学習した先の目的を明確にしておいた方がよいです。

目的はささいなことでも実現難しそうなことでも何でもよいと思っています。

他の機械学習手法と比較すると良い

当サイトでは、同様のMnistのデータを勾配ブースティング手法とディープラーニングで分類していますが、

勾配ブースティング
勾配ブースティング手法をPythonで実装して比較していく!当サイト【スタビジ】の本記事では、勾配ブースティングの各手法をPythonで実装して徹底比較していきます!勾配ブースティングの代表手法「Xgboost」「Light gbm」「Catboost」で果たしてどのような違いがあるのでしょうか?...
【入門】ディープラーニングとは?仕組みとPythonでの実装を見ていこう!当サイト【スタビジ】の本記事では、ディープラーニングの仕組みやPythonでの実装方法について解説していきます。ディープラーニングってなんとなくブラックボックスなイメージがあるかもしれませんが、実はシンプルなアルゴリズムなんですよー!...

ご自身で勉強する時もぜひ他の機械学習手法と比較してみてください。

精度と計算負荷を他の手法と比較することで、ディープラーニングへの理解がより深まります。

出力層の関数は要注意

ディープラーニングを組み立てていく時、出力層・中間層の関数を決めるのですが出力層の関数を適切なものに設定しないと出力値が見当はずれのものになるので注意が必要。

当たり前ですが、出力したい値が0・1の2クラスなのか、多クラスなのか、それとも量的数値なのか、明確にして設定しましょう。

ディープラーニングの学習 まとめ

ディープラーニングの学習方法についてまとめてきました!!

学習ロードマップは以下の4STEPでしたね!

このステップが必ず正解というわけではないので、参考にしながら自分のペースで学習を進めていってください。

以下のポイントには留意しておきましょう!

・ディープラーニングで最終的に何がしたいかを明確に
・他の機械学習手法と比較すると良い
・出力層の関数は要注意

ロボたん
ロボたん
ディープラーニング学習についてだいぶクリアになったよ!
ウマたん
ウマたん
ディープラーニングを学んで世界にはばたこう!
Pythonを初学者が最短で習得する勉強法

Pythonを使うと様々なことができます。しかしどんなことをやりたいかという明確な目的がないと勉強は捗りません。

Pythonを習得するためのロードマップをまとめましたのでぜひチェックしてみてくださいね!