racoon_chanの日記

プログラミング初心者がAtCoderで水色になるまで。

Pythonで始める機械学習に着手(Udemyのことも書いてるよ)

こんばんは。先週より機械学習の勉強を始めました。

まず最初にやってみたのはUdemyの動画講座です。

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習

こちらの動画を選んだ理由としては

  • 数学的な知識が弱くても進められる。
  • インプット型ではなく、ハンズオンで学べる。
  • ニューラルネットの実装をライブラリに丸投げでなく、1つ1つ解説付きで進められる。

それぞれについて説明します。

数学的な知識が弱くても進められる。

学部で物理系の研究をしていたこと、大学院入試で数学はミッチリと詰めたとは思うが、それでも未知の分野ということで、数学的な難易度は下げたかった。
まずはできるだけ難易度を下げ、ある程度機械学習の世界観に親しんできたと実感できたら、パターン認識と機械学習なり、アルゴリズムの詳細な説明を数学的に示している参考書に移行する、といった計画だ。(ほぼ無計画)

インプット型ではなく、ハンズオンで学べる。

そして、自分はインプットだけでは飽きてしまうので、「ああ〜、こんな実装すんのね〜」的な、具体例をイメージしながらモチベーションを維持できる。
なんとも、受験勉強はほぼインプットだったのでつまらなかったのだ。
何度もプログラミングに挫折した私が4月にPythonを始め、実務で開発を進められるようになってきたのも、「手を動かしている」からだと思っている。
インプットだけではつまらないし、続かない(Pythonが簡単ってのもあるけどね)

ニューラルネットの実装をライブラリに丸投げでなく、1つ1つ解説付きで進められる。

個人的にはこれが大きいと思っている。
ニューラルネットと聞くと、「ほえ〜なんだか凄そう」的な、なんだか雲を掴むような、抽象的な概念だな感じていたのですが、
ソースを見てみると、「ああ、なんだ。ニューラルネットをそうモデル化してるのね」と、目に見える形になると現実感が増します。

だってwikipediaニューラルネットワークの説明ってこんな感じだもの。

ニューラルネットワークシナプスの結合によりネットワークを形成した人工ニューロン(ノード)が、学習によってシナプスの結合強度を変化させ、問題解決能力を持つようなモデル全般を指す

何言ってるかちょっとわかんないですよね。
でも、ソースを見れば、「ああ、なんだ。そんなことか」ってなるんです。
最初は多少厳密でなくても、「理解できそう」「自分でもイケそう」って思えるほうが前に進めますよね。
それが間違った理解でも。


というわけで、先週かけてこちらの講座を修了しました。

修了した感想としては、やっぱり上の理由と一致していて、「機械学習ってこうやって動いてるんだ」「数学的な背景全くわからんから、もう少しあとに勉強したいな」「もうちょっと他のアルゴリズムも勉強したいな」と思えるようになりました。

いまPythonで始める機械学習に着手していて、やっとこの日曜日を使って1章終わりました。
scikit-learnを使って、Irisを分類するってただそれだけなんだけど、実装するって楽しいですね。
www.oreilly.co.jp

明日も勉強を続けます。
今日も最後まで見ていただき、ありがとうございます。
おやすみなさい。