2018年6月16日、日本ディープラーニング協会が主催するディープラーニングの検定試験(通称G検定)を受けてみました。今回の、申し込みから合格までのスケジュールは以下の通りです。
2018年02月26日:CourseraのMachine Learning受講開始
この辺りは58歳の文系エンジニアがCourseraのMachine Learningを苦労して完走した話に書きました。
2018年03月26日:上記修了
2018年04月23日:G検定推薦図書購入
2018年06月08日:受験申し込み
2018年06月16日:受験
2018年06月18日:CourseraのDeep Learning Specialization受講開始
2018年06月20日:合格発表
#動機#
2018年3月にCourseraのMachine Learningを修了したあと、勉強会などに参加して色々と教えていただくうちに、今後自分が目指すべきは「仲介者」だなと思い始めたことが動機です。
機械学習のエンジニアと業務アプリのエンジニアやビジネスサイドの人間をつなぐための橋渡し役。自分でオンライン講座を受講してみて、機械学習を学んだ人とそうでない人のギャップはとても大きいと感じています。機械学習を活用したシステムの開発をうまく回していくためには、両者のギャップを埋めて誤解や齟齬が生じないように、お互いの要求を相手の言葉に翻訳し、掘り下げて相手にわかるように伝えることがしばらくの間は必要だと思います。
エンジニア目線だけではいけないし、ビジネス目線だけでもいけない。両者の目線を併せ持ち、本当にそのやり方でビジネスの要求が実現できるのか、法的、倫理的、制度的な課題は残されていないのか、データはどこにあってどうやってもってくるのか、偏りはないのか、利害関係の調整をどうするかなど、広い視野で見まわして下働きができるようになりたい。そのためにはきっと包括的な知識が必要で、それを身につけるとっかかりとしてG検定が最適ではないかと思ったからです。最低限のことは網羅的に知ってますよという目印にもなりますので、仲介役として間に入る際にお互いのサイドから「どこの馬の骨?」と疎まれることもないように思います。
僕にとってG検定は最低限のスタートラインであり、この証明を足がかりに実績を積んで機械学習の実プロジェクトをうまく回せるようになりたいのです。JDLAがT字型の人材開発を目指すというなら僕自身も広く深く刺さり込めるT字型の人材になりたい。
#試験内容#
この検定試験のシラバスはよく知られていると思いますが、僕の主観では、例示されている推薦図書だけでこの検定試験に合格することは難しいかもしれないと感じました。というのも、この検定試験では、推薦図書に記載されていない、ディープラーニング以外の機械学習一般に関する設問もかなり(主観的には2割)用意されています。例えば、主成分分析により得られる次元削減以外の効果とか、ロジスティック回帰でシグモイド関数を使うメリットなど、意外に深いところが分かっていないと解けない設問があります。ディープラーニングの検定試験を受けるのだから、前提条件として機械学習の一般的な手法は分かってますよねというスタンスのようにもみえます。
一方で、ディープラーニングに関する具体的な内容や手法に関しては、それほどアルゴリズムに深く踏み込んだ設問が用意されていたわけではないと思います。こちらは推薦図書のうち「人工知能は人間を超えるか ディープラーニングの先にあるもの」と「深層学習(ただし数式はスルーしていいです)」を読み込んでいればかなり解ける設問だったと思います。主観的には3割程度がこの範囲から出題されていたように感じます。しかし、エンジニアとしてアルゴリズムや手法に重きを置いて勉強あるいは実プロジェクトで実践していただけだと、企画、法務、知財などのビジネスサイドに必要な法律、政策、情勢、動向に関する設問は難しく感じたかもしれません。例えば、AI創作物の著作権は誰に帰属するかとか。
そういった部分を補完するために「AI白書 2017」は必須の書になります。主観的にはこの白書から4割は出題されていたような気がします。「人工知能は人間を超えるか」と被る部分もあるのですが、イーロンマスクが何をいったかとか、強化学習やロボティクスの動向、自動運転のレベルとか、知的財産権や制度などについてはこちらの資料から出題されています。例えば、音声認識の動向として各社のサービスを問う問題などが出てきます。
試験内容は本当に多岐にわたりますので、推薦図書を流し読みしただけでは合格はおぼつかないように思います。おそらく1割程度は推薦図書には全く記載のない設問があったように感じますし、常日頃から機械学習の動向に注目しておくことが大事かもしれません。
#勉強方法#
僕が勉強のために用意したものは以下の通りです。僕にとってG検定はスタートラインで、その先が大事と思っていますのでその前提でお読みください。
##オンライン講座##
CourseraのMachine Learningコース
機械学習の代表的なアルゴリズムについて理論と適用例を学習することができます。実際にプログラムを作ってアルゴリズムを動かすので、プログラマ的には座学だけでは把握しづらい部分を動かして理解できます。2012年のスタートなので最新のディープラーニングに関する説明(RNNやGANなど)はないですが、ニューラルネットワーク、バックプロパゲーション、フォトOCRでの畳み込み例、ミニバッチ学習などの基本は理解できます。
##推薦図書##
以下はJDLAから推薦されている文献です。必読です。僕は以下の並び通りの順番で読みました。
人工知能は人間を超えるか ディープラーニングの先にあるもの
読み物として面白く読めました。あまり数式も出てきませんので、エンジニアを目指さない方にもとっかかりやすい本だと思います。もし機械学習の素養が全くないなら、この本から読み始めることをお勧めします。
深層学習
数式を楽しめる人が読む本だという気がします。正直、僕には難しすぎて数式部分は全く頭に入ってきませんでした。しかし、文章部分をしっかり読み解けばディープラーニングの代表的な手法のカラクリは分かると思います。ただ、CourseraのMachine Learning講座を修了できる程度に、機械学習の基礎体力がない方はこの本を読み解くのは厳しいと思います。
AI白書 2017
白書というだけあってAIの歴史から始まって、各種アルゴリズムの概要説明、プロジェクトの運営、企業や各国政府の動向、法律的な整備状況や倫理面からの警鐘、利用技術の進展など網羅的に記述された本です。AIとそれを取り巻く社会の情勢が浮き彫りになってきます。テクニカル面に偏りすぎたと思ったら、息抜きにこちらに戻ってくるのもいいかもしれません。
##自習本##
以下は本検定とは関係なく自習のために読んだ本ですが、意外に検定試験にも役立った気がします。
##勉強会&カンファレンス##
以下は参加した勉強会やカンファレンスです。この他にも単発的に行われるベンダー主催の機械学習系セミナーやMeetupにも諸々参加しました。毎月2〜3の勉強会、1回のセミナー/カンファレンスに参加というイメージです。
DEEP LEARNING LAB
Prefferred Networksとマイクロソフトが事務局を務めるディープラーニングを使った事例の紹介や最新技術同呼応などの情報を発信する勉強会です。
Cogbot勉強会
マイクロソフトのCognitive ServiceやBot Frameworkを利用したチャットボットの事例発表やハンズオンを行っている勉強会です。
カンファレンスは、昨年度のものも含めてに以下のようなものに顔を出しました。
IBM Watson Summit 2017
Developers Summit 2017 Summer
Connect(); Japan 2017
Developers Summit 2018
de:code 2018
IBM Think Japan 2018 Code Day
#これからどうする?#
僕の機械学習レベルを表してくれるバッジはいまのところ以下の二つです。
CourseraのMachine Learning修了証
JDLA G検定合格証
この二つで、「英語でも」機械学習の基礎的なことを議論できる体力があり、ディープラーニングを含む最近の人工知能の動向や適用事例も広く理解していると主張できますが、エンジニアとして実プロジェクトに参画して推進していく能力があると証明されたわけではありません。
僕が目指す、ビジネスとエンジニアをつなぐ存在になるために、もう少しエンジニアリングサイドに突っ込んでいく必要があると思います。そこで、CourseraのDeep Learning Specializationを受講します。というか既に始めています。このコースは、5つのコースからなっている全16週のコースで順調にいけば3か月で終了する見込みです。
Neural Networks and Deep Learning(4週)
Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization(3週)
Structuring Machine Learning Projects(2週)
Convolutional Neural Networks(4週)
Sequence Models(3週)
さらに、以下はまだパラパラとしかめくっていない積読になっている本ですが、このコース受講の参考資料として並行で読みたいと思います。特にPython周りは素人に毛が生えた程度なのでプログラム課題を解くときにはとてもお世話になると思います。
ゼロから作るDeep Learning
Pythonではじめる機械学習
ここまで行っても、たぶんまだ一つ欠けているピースがあると思っています。それは、機械学習に必要なデータを持ってきて加工する技術を持っているという証明。もともと金融機関向けの勘定系DB、リスク管理システムやサイベースでデータウェアハウスをやっていたので、DBの設計や操作は得意科目ですがここ10年くらいデバイス側の開発がメインですっかりご無沙汰しています。このあたりをキャッチアップしてDB周りの能力を証明するため、来春データベーススペシャリスト試験を受けようと思います。
CourseraのMachine Learning修了証(済み)
JDLA G検定合格証(済み)
CourseraのDeep Learning Specialization修了証(9月予定)
データベーススペシャリスト合格証(2019年春予定)
という4つくらいの証明書があれば、仲介者として実プロジェクトの現場に参画するチャンスがあっても「どこの馬の骨?」扱いされずに、何らかの形で会社の役に立ち自分自身も成長できるのかなと。定年まで残された時間は1年半と多くありませんが、機械学習を始めてからワクワクが止まらないのでかなり幸せな日々です(笑)
あっ、それから最後に、これは書こうかどうしようか迷ったのですが、E資格についてはまだ受けるかどうか決めていません。様子見です。というのも、今回の合格後にツイッターで合格を喜ぶお仲間のツイートを見ていたら、うちの会社がE資格のJDLA認定プログラムのプロバイダーになれました!初級のGではなく上級のEですよとか浮かれてツイートしている講師がいてげんなりしてしまいました。GとEでT字型に人材開発を目指すJDLAの理念もクラシフィケーションも分からない講師に教わるのも嫌だなと思いまして。
僕は、GとEの違いは優劣ではなく分類だと思っています。JDLAもそう定義していると思います。ビジネス側の人にとってG検定は、機械学習エンジニアと要求仕様について話し合い結果について共に検証する最低限の知識がある証。エンジニア側の人にとってはテクニカル一辺倒ではなく、動向や法令、倫理観や知財さらには政策やコンプライアンスといった観点を含めて、機械学習でどう実現するかを提案・推進していく最低限の知識があるという証。そこを勘違いして優劣に置き換えてはいけないと思います。
しばらくは、GoogleとBaiduで機械学習プロジェクトを推進し、スタンフォードで教鞭をとったアンドリュー教授に教わることにします。キカガクあたりが認定プログラムプロバイダーになるようなら再考したいと思います。