ごあいさつ
はじめまして。2018年度入社、R&Dセンター技術開発部AI技術課の鈴木と申します。
この記事では、深層学習の初心者の私がいかにして知識を習得してきたのかを、おおよその勉強時間も添えてみなさんにご紹介いたします。
深層学習について知ってみたいけど、どう学んだら良いのか分からない方のお役に立てれば幸いと存じます。
対象者
今回お教えする勉強法の対象者は、以下に当てはまる方としております。
- 深層学習について全く知らないけど、詳しく知りたい
- 深層学習を使って何か動かしてみたい
- 人工知能や機械学習についても詳しく知りたい
鈴木のスペック
ご参考までに、私のスペックをご紹介いたします。
(画像はイメージです)
情報系の大学出身で、研究ではSwiftでスマホアプリの開発と運用をしておりました。
しかし、人工知能についての知識は、名前を聞いたことがある程度で、全くありませんでした。
なお、深層学習にはベクトルや行列、微分といった数学の知識が必要になります。
私の場合、それぞれの計算の仕方くらいなら知っているといった具合です。
ですが、深層学習の概要を理解する段階では、自信がなくても悲観的になる必要はないと考えております。
勉強法の紹介
勉強法を以下の順番でご説明いたします。
- 人工知能と機械学習、深層学習の概要を理解する
- 深層学習を使って何かを動かす
- 深層学習の資格勉強をして実力を試す
人工知能と機械学習、深層学習の概要を理解する
深層学習というのは機械学習の一部です。また機械学習は人工知能の一部です。
なので先に、人工知能と機械学習、深層学習の概要について勉強をしました。世間に出回っている書籍はもちろんですが、社内セミナーなどの資料も利用することで、概要知識を身につける事ができました。
深層学習を使って何かを動かす
次に何かを動かすにあたり、以下の計画を立てました。こちらも順番にご説明いたします。
なお、()の中の数字は勉強時間を示しております。(単位はhourです)
- Python言語の勉強をする(10h)
- 深層学習をひとまず動かしてみる(4h)
- 数値計算ライブラリ「numpy」の勉強をする(4h)
- 「ニューラルネットワーク」の勉強をする(6h)
- 学習中における問題(過学習など)の勉強をする(2h)
- 深層学習を使って犬と猫の画像の分類を行う(3h)
Python言語の勉強をする(10h)
私は深層学習の実装に人気のあるプログラミング言語「Python」の勉強をしました。
使用した教材は「独習Python入門ー1日でプログラミングに強くなる (著)湯本堅隆」です。
この教材はプログラミング未経験者でもPythonの基本的な使い方(分岐、繰り返しなど)をストレスなく学習できる特徴があります。
深層学習をひとまず動かしてみる(4h)
今回はSCSKのウェブサイトで公開中の「kerasで実践!Cats vs. Dogs」で紹介されている、犬と猫の画像を分類する処理を動かしてみることにしました。
これを動かしてみて、深層学習の学習と判定の様子を知ることができました。
数値計算ライブラリ「numpy」の勉強をする(4h)
次に深層学習には欠かせない、「numpy」の勉強をしました。
使用した教材は「詳解ディープラーニング (著)巣籠 悠輔」です。
この教材は「numpy」の基本的な使い方を紹介しているので、この部分を活用しました。
また、この教材は深層学習について詳しく説明されているのですが、数式が多く絵が少ないため、私には難しく感じました。なので、これに関しては部分的に活用しました。
「ニューラルネットワーク」の勉強をする(4h)
続いては深層学習が活用している「ニューラルネットワーク」の勉強をしました。
使用した教材は「ニューラルネットワーク自作入門(著)Tariq Rashid, (監修, 翻訳)新納 浩幸」です。
絵を用いて説明している場面が多く、イメージしやすい印象を受けました。
学習中における問題(過学習など)の勉強をする(2h)
ここで再び、「詳解ディープラーニング」を利用しまして、学習中における問題を勉強しました。
ディープラーニングの学習中における主な問題とその原因がうまくまとまっているのでその部分を勉強しました。
深層学習を使って犬と猫の画像の分類を行う(3h)
このタイミングで再度「kerasで実践!Cats vs. Dogs」の犬と猫の画像分類を処理を動かしました。
学んだことがどのように活用されているのかを理解しながらコーディングをしました。
深層学習の資格勉強をして実力を試す
深層学習を一通り学び終え、最後に覚えた知識を応用します。
実は深層学習には資格が存在します。
それは、一般社団法人日本ディープラーニング協会が定めたジェネラリスト検定(通称「G検定」)とエンジニア資格(通称「E資格」)です。
G検定を取得すると「深層学習の基礎知識を有し、適切な活用方針を決定して事業応用する能力を持つ人材」、E資格を取得すると「深層学習の理論を理解し、適切な手法を選択して実装する能力を持つ人材」の証になります。
難易度的に考えて、まずはG検定に挑戦することをお勧めいたします。
また、それぞれ受験の仕様が異なりますので注意が必要です。
例えば、G検定には受験資格はございませんが、E資格には受験資格としてJDLA認定プログラムの修了が必要で、これを受講するだけで約1ヶ月の期間と費用が約30万円かかります。詳しくは、公式ホームページをご覧ください。
まとめ
ここまでの深層学習の勉強法をまとめますと、以下のようになります。
深層学習を使って何かを動かす(29h) ※ ()は勉強時間を示す。単位はhour
Python言語の学習(10h)
書籍「独習Python入門ー1日でプログラミングに強くなる (著)湯本堅隆」
↓
深層学習をひとまず動かしてみる(4h)
記事「kerasで実践!Cats vs. Dogs」
↓
数値計算ライブラリ「numpy」の学習(4h)
書籍「詳解ディープラーニング (著)巣籠 悠輔」
↓
「ニューラルネットワーク」の学習(4h)
書籍「ニューラルネットワーク自作入門 (著)Tariq Rashid, (監修, 翻訳)新納 浩幸」
↓
学習中における問題(過学習など)の学習(2h)
書籍「詳解ディープラーニング (著)巣籠 悠輔」
↓
深層学習を使って犬猫分類(3h)
記事「kerasで実践!Cats vs. Dogs」
↓
深層学習の資格勉強をして実力を試す
G検定の受験
↓
E資格の受験
認定プログラムの修了後に受験
所感
ここまでの勉強を通して、深層学習の概要は数学の知識をそれほど知らなくても理解できることに感心しました。ネットの情報や書籍には複雑そうな数式を使って深層学習を紹介しているものが多い印象を持っておりましたが、知らなくても概ね理解できるのだと知りました。実装段階に入ると必要になってきますが、駆け出しの段階では問題ないかと存じます。
また、この勉強法を参考に自分に合いそうな勉強をしても良いでしょう。深層学習の概念を先に勉強するために「numpy」の勉強の前に、「ニューラルネットワーク」を勉強するのも良いですし、数学に自信のある方は、「詳解ディープラーニング」や「ゼロから作るDeep Learning (著)斎藤 康毅」から始めるのも良いでしょう。
現在私は今E資格の受験資格である認定プログラムを受けております。
学習していないnumpyの新しいメソッドや私にとって難しいアルゴリズムが次々に登場しておりますが、初めに深層学習の概要を知ったことや、深層学習を実際に動かした経験を通したおかげで、勉強を頑張り続けることができております。
E資格の合格にむけて、そして合格後も業務に活かすために、日々精進して参ります。
最後までお付き合いくださり、ありがとうございました。