文系出身者が機械学習を初めて勉強するときにおすすめの教材

こんにちは、@keimaejimaです。

思い返すと去年は初めて機械学習について学んだ年でした。なかなか心理的ハードルが高めだった機械学習ですが、昨年関わっていたプロジェクトの中で学ぶ機会があり、本当に良かったなと思っています。

そこで今日は、大学院まで文系で進んできた僕が機械学習を数学的な部分も含めて理解するために使った教材をご紹介したいと思います。一応ゴールとしては、「数学的な原理も理解しつつCNN(畳み込みニューラルネットワーク)のモデルを作ってWebアプリケーションから利用する」というところをイメージしていただければと思います。

記事中で「ここが間違っているよ」とか「もっと良い教材があるよ」などありましたら教えていただけるとありがたいです。


数学編

「わいは機械学習のライブラリを使って実装だけできればそれで良いんや!」という人は数学の知識は必要ないと思いますが、どういった原理で機械学習が行われるのかをちゃんと理解するためには数学の知識が不可欠です。

機械学習に関わる数学の知識を得る教材として以下の2つをご紹介します。


文系出身の方は微分の数3Cの範囲と、行列については学んでいないと思うので、「もう一度高校数学」で学習すると良いかと思います。この本の関数、微分、行列、確率の単元を学ぶと十分かと思います。(積分は不要)

「人工知能プログラミングのための数学がわかる本」は上記で学んだ数学と機械学習との関わりと学ぶのに適していると思います。ただ、一度も機械学習に触れたことがない状態で読むと、「活性化関数ってなんだ?誤差逆伝播法ってなんだ?」となると思うので、実用編で紹介した教材に取り組みつつもう一度読むような使い方が良いのではないかと思います。


原理編

数学の学習が終わったら、ライブラリなどを使わずにスクラッチでコードを書きつつ機会学習について学んでいく段階です。こちらでは下記の2つの教材をおすすめします。

CourseraのMachine Learningコース

https://www.coursera.org/learn/machine-learning


いずれも基礎から機械学習が学べる教材ですが、かなりボリュームのある教材ということもあり、今回の目的からすると必ずしもCourseraの方は必要ない気がします。僕個人としてはCourseraの方の線形回帰のところまでやった時にぐっと機械学習が身近になってモチベーションが上がった記憶があり、時間のある方にはおすすめす。(ちなみにその後ニューラルネットワークの単元までやってもう十分だろうと思って途中でやめました)

いずれの教材についても反省としてあるのが、上述の数学の教材をやる前に取り組んでしまったことです。数学の知識が今くらいあればより理解が深まった部分が多々あると思うので、近いうちに時間を作って再読したいと考えています。


実用編

さて、いよいよ実用的なモデルを作ってサービスから利用するところまでやっていく段階です。特にエンジニア経験のある方であれば、数学編と原理編をすっとばしてここからやってもモデル自体は作れてしまうので、効率重視の方はここからで良い気がします。

こちらでは下記の2つをお勧めします。


Udemy 「TensorFlow・Keras・Python・Flaskで作る機械学習アプリ開発入門」

https://www.udemy.com/tensorflow-advanced/

機械学習に詳しい友人に勧められたこともあり、最初に学習するライブラリとしてGoogleがオープンソース化した機械学習ライブラリのTensorFlowとKerasを選びました。上の本はTensorFlow・Kerasの基礎からディープラーニングを使った画像判別、自動着色、画像生成まで扱っており、よく一冊にまとめたなと思うくらいよくまとまった本です。

Udemyの講座ではTensorFlow・Kerasでモデルを作って、FlaskというPythonのWebアプリケーションフレームワークから呼び出して画像判別をさせるところまでやります。判別結果がブラウザに返ってきた時には結構感動すると思います。


最後に

以上簡潔ではありますが、文系出身者が機械学習を初めて勉強するときにおすすめの教材をご紹介しました。

今年は今準備中の事業に関わる技術であるということもあり、なんとか時間を作って自然言語解析の分野について学んでいきたいなあと思っているところです。

今日は以上です!


※こちらの記事は下記の転載記事です


公開日:2019/01/10
獲得ALIS:37.25
keimaejima's icon'
  • keimaejima
  • @keimaejima
東大学際情報学府で修士(メディア論)→リクルートでエンジニア/PM→卒業して株式会社Antway創業なう。好きなもので繋がれるファンコミュニティサービスを作っています。週末メディアアーティスト。
コメントする 前のコメントを表示
  • 巷の安全性調査員
  • 3ヶ月前

参考になりました。原理編の「ゼロから作るDeep learning」までやって、手書き画像を判別することができた時は自分も感動しました。でも、何か一からやって見ようとすると根本的にプログラミング経験が足りずどこから勉強すればいいか困っていました。

実用編に挑戦してみようかな。

返信
  • ののた
  • 3ヶ月前

ちょうど機械学習の本を探していたので参考になりました!
ありがとうございます😊

返信
  • うめ吉
  • 3ヶ月前

えー文系出身だけど、興味あるぅ…

返信
  • 三輪江一
  • 3ヶ月前

はじめまして。ALIS初投稿お疲れ様です!

自分も文系の人間で、機械学習のことは興味があっても絶対ムリなものと決めつけていました。
この記事をきっかけに「自分も!」と思う人がいるかもしれませんし、とても価値ある記事ですね。(自分は本格的に学んでみようとまでは思わないですが、AIをテーマに脚本を書いてるので、参考資料に良いかもと思いました)

なさっている事業の方にも興味ありますので、そんな記事もいずれ拝見できたら嬉しいです。
これからもよろしくお願いいたします!

返信
  • smallplace@ハッカー部
  • 3ヶ月前

そもそものPythonの入門書がなくては、手が出せないのでは?(個人のプログラムスキルにもよると思いますが。。)

また、「機械学習=深層学習」としてしまっている感がありますが、scikit-learnを活用する良書がノミネートされていても良いと感じました。

返信
コメントする