hirolog

20代医大生のブログ。日々の情報収集のアウトプット。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day14

今日の目標

昨日に引き続き、「pythonではじめる機械学習」を進めていきます。

14日目でやった事

pythonではじめる機械学習

かかった時間:11.5時間

難易度:★★★☆☆〜★★★★☆

第3章:教師なし学習と前処理

前処理、次元削減、PCA、K平均法はすでにcouseraで扱った項目で、schikit-learnでの実装方法が学べました。特微量の抽出なんかは主成分ベクトルが可視化されていて感覚的にわかりやすい解説でした。NMF、t-SNEは新たに学んだアルゴリズムでしたが、そんなものもあるのかという感じで、中身は結構ブラックボックスに感じました。クラスタリングの凝集型クラスタリング、DBSCANも初めて知りましたが、それぞれの仕組みはざっくりと理解できて、どのような場合に向いているかも知ることができました。

第4章:データの表現と特微量エンジニアリング

この章はcouseraでは学んでないことが多く出てきましたが、実際のデータをもとに解析をし始めてみないとイメージが掴みにくいかなと感じました。特微量エンジニアリングが必要になったタイミングでまた読み直したいと思います。

カテゴリ変数に関しては、実際のデータを扱う上ではかなり大事になってくる部分だと感じました。自動特微量選択は便利だと感じましたが、中身がかなりブラックボックスです。。

第5章:モデルの評価と改良

モデルの評価に関してcouseraよりもかなり深いレベルで学べました。交差検証やグリッドサーチを行う際にはscikit-leanにはとても便利なクラスが提供されており、それらを実際に実装できます。また、可視化することによってモデル評価をより効率的にできることもこの章での大きな学びでした。ただ、モデルの評価に関しては実際のデータで自分で試してみないと腹落ちして理解するのは難しいです。。

第6章:アルゴリズムチェーンとパイプライン

パイプラインはかなり有用なテクニックであり、活用できるとかなり効率的にコードを書けそうです。

第7章:テキストデータの処理

映画レビューのセンチメント分析を使って、どうやってテキストデータを処理していくかを学べます。精度をいかにして上げていくかという実践的な過程が見られてとても面白いです。couseraのスパムメール処理で用いられる内容も出てきます。

第8章:おわりに

深掘りするためには次はこんなことを勉強するといいよ、といったことが書かれています。

全体の感想

ゼロから作るディープラーニングと比べるとサイズも大きいし、なんとなく内容も難しそうだと感じていたのですが、アマゾンなどでも高評価なこともあって、日本語訳も読みやすく図を使った説明もわかりやすくて、かなり学びの多い本でした。

特にpythonでの具体的な実装方法がわかったので、この本を見ながらコードを書いていけば機械学習は実装できるなという感覚を掴めたのが大きかったです。ただもちろん一回読んだだけでは、自分のものにできるまで程遠く、この本を何度も見返しながら実装をしていきたいと思います。

アルゴリズムの簡単な仕組みは書かれているのですが、理論の知識がゼロの状態だとそんなのもあるのか!って感じで理解が一段浅くなる気がします。couseraなどで一度機械学習の全体を学んだ後に、pythonでの実装方法を学ぶというポジションで読むのがしっくりきやすいではないかと感じました。

とてもオススメの本です〜。

明日に向けて

明日で折り返し地点になるので、今後あと半分何を勉強していくかを考えようと思います。明日は一旦休憩的なポジションでKaggleについて勉強します。「Kaggleで勝つデータ分析の技術」という本を読む予定です。

 

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day13

今日の目標

昨日に引き続き、「ゼロから作るDeepLearning」を最後まで終わらせようと思います。

それが終わり次第、「pythonではじめる機械学習」に移行します。

13日目でやった事

ゼロから作るDeepLearning

かかった時間:6時間

難易度:★★★★☆

第7章:畳み込みニューラルネットワーク

画像認識に用いられているCNNについての章です。結構内容が難しくて、何回も読み直したりしたのでこの章に5時間くらいかかりました。。とても複雑ですが、コードがまさにパーツを当てはめていく感じで使いこなせたらかなり楽しいだろうなと思います。最後に実際に学習させたところ1時間くらいかかりました、さすがニューラルネットワーク、時間かかりますね。。

第8章:ディープラーニング

この章は実装ではなく、認識精度をさらに高めていくためにはディープラーニングという技術が有用であり、どのようなネットワークがこれまで構築されてきたかといったような話でした。またディープラーニングが現実ではどのような事例に応用されているのかが解説されています。

ゼロからつくるディープラーニングの感想

pythonの知識面が不安だったのですが、python入門ノートをやったレベルで十分対応可能でした。pythonの文法で忘れてしまった部分はググったり入門ノート読み返すというのを繰り返して実際に書きながら学んでいくのが良さそうです。

内容としては全くの初学者からでもおおよそ理解できるだろうな、というレベルで易しく書かれています。機械学習を学びたてのタイミングでも、ディープラーニングって結局何なん?というのがこの1冊でわかるのではないでしょうか。

最終的にはニューラルネットワークを自分で実装できるようになってしまうので、かなりよく出来ている本だなと感じました。

自分はcouseraで一度機械学習について学んだあとで読んだので、重複している部分が多々ありましたが、違う角度からの説明であり、より理解は深まったかと思います。とてもオススメできる一冊でした。

 

Pythonではじめる機械学習

かかった時間:6.5時間

難易度:★★★☆☆

第1章:はじめに

NumPyやpandasなどの導入などです。pythonを一度も触ったことのない人にとっては難易度が高く感じてしまうと思います。

第2章:教師あり学習

かなりヘビーでしたがとても勉強になりました。

特にcouseraで理論がわかっていると、それをpythonのscikit-learnを使うとどのように実装できるのか、実践的な部分が学べてとても勉強になります。

理論に関してはスペースが割かれていないので

・理論→cousera

pythonでの実装→pythonではじめる機械学習

とお互いに補完するポジションとして勉強すると効率よく勉強できると思います。

また、couseraでは扱っていない決定木、ランダムフォレスト、勾配ブースティング回帰木について勉強できたのが良かったです。

注意点としては、やたらmglearnというライブラリを用いたコードが出てきて、最初はそれも写経していたのですが、たまに動かないこともあったりしたのでやめました。基本的には視覚的に解説するときにグラフの作成で用いられることが多いので、mglearnの部分は無視してしまっていいと思います。

逆にscikit-learnには様々なデータセットが用意されているので(2章の最初で紹介される)、実際にそれぞれのアルゴリズムをそれらのデータセットに入れてみて試しながら進めるのが良いと思います。

また、適宜scikit-learnのページを見ながら進めると参考になることも多いと思います。

https://scikit-learn.org/stable/index.html

明日に向けて

引き続き、「pythonではじめる機械学習」を進めていきます〜。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day12

今日の目標

今日からpythonを使いつつ、「ゼロから作るDeepLearning」を始めていこうと思います。

12日目でやった事

ゼロから作るDeepLearning

かかった時間:11時間

難易度:★★★☆☆

第1章:python入門

ゼロから始めることをこの本のコンセプトとしており、pythonの入門まで付いています。一応python未経験でも理解はできそうですが、基礎を一通りやってから取り組むのが良いと思います。

第2章:パーセプトロン

この辺りはcouseraの機械学習ですでに学んだのでスムーズに進みます。

第3章:ニューラルネットワーク

内容自体はcouseraですでに扱ったものなので理解しやすかったです。あとは、それをpythonでどう実装するかを学んでいるイメージです。aとzの使い方がcouseraの時とは逆だったりとちょっと違和感を感じるところが多々ありましたがこちらで慣れます。。

行列の計算の仕方から丁寧に説明してくれているのでcouseraをやっていなくても十分安心して学べます。

個人的には勾配法の説明はcouseraの方がわかりやすかったかなと思います。

第4章:ニューラルネットワークの学習

この章から実装量も増えてきてだいぶ時間がかかりました。

第5章:誤差逆伝播

この章が今日一番勉強になりました。couseraでは誤差逆伝播法は直感的なイメージをなんとなく理解して最終的には式を覚えようという感じでしたが、この章では具体例を用いてかなり噛み砕いて説明されていたのがわかりやすかったです。

また、couseraと実装の仕方も異なっていました。こちらではlayerごとにクラスを作り、それぞれでforward,backwardのメソッドを作ることによってそれらを、レゴのように組み合わせて一気に作用させるというやり方です。この発想が非常に面白いなあと思いました。pythonだからこそできるやり方ですね。これであればlayerが増えようとも簡単に実装できそうです。

第6章:学習に関するテクニック

パラメータの更新方法の違いや、初期値の設定、batch normalizationなど、実際にニューラルネットワークの学習を行う上でのテクニックが載っています。

この章はcouseraよりもかなり深いところまで説明されているのでおすすめです。論文の結果などを用いて、例えばパラメータ更新方法の違いによって損失関数の値の変化をグラフで見れたりするのでとても参考になります。割と最近できた手法も載っていたりします。

明日に向けて

明日は「ゼロから作るDeepLearning」の続き、「畳み込みニューラルネットワーク」と「ディープラーニング」をやってこの本を終わらせたいと思います。初めて学ぶ分野なので楽しみです。

次の本として「pythonではじめる機械学習」にいこうと思います。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day11

今日の目標

昨日に引き続き、pythonの勉強です。

昨日の感想として、まずもっと基本的なところを固めたほうが良さそうだということがわかったので「python3入門ノート」をやります。

11日目でやった事

python3入門ノート 終了

かかった時間:13時間

難易度:★★☆☆☆

内容

・変数

・ライブラリ

・条件、繰り返し、例外

・リスト

・タプル

・セット

・辞書

・ユーザー定義関数

・関数の高度な利用

・クラス定義

・ファイル読み込み

・matplotlib

・NumPy

機械学習を試そう

感想

この本はpythonをインストールするところから始まっており、初心者の人でもとても勉強しやすいように設計されています。

昨日にすでに理解できている部分は流し読みしつつ、適宜コードを書きながら進めていきました。昨日のコースよりも内容が網羅されていて先にこっちをやったら良かったなーと思いました。

内容の多くが昨日扱ったものだったのでスムーズに進めることができました。ただ、内容を現段階で全て暗記するの無理なので、「こんなメソッドあったよね」くらいに理解しておいてまたこの本に戻ってくるのが良いのかなと思っています。

pythonの勉強だけだとちょっと飽きてしまうので早速明日から、機械学習の勉強をしながら実際にpythonを使っていこうと思います。

明日に向けて

機械学習の勉強のために買った本は2つで「pythonではじめる機械学習」と「ゼロから作るDeepLearning」です。

当初は機械学習の方から始めようと思っていたのですが、パラパラっと見た感じだとDeepLearningの方が取っ付きやすそうだったので、明日からそちらをやっていきたいと思います。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day10

今日の目標

今日からpythonの勉強を始めます。

Data Campを試しにやってみたら意外と良かったのでこちらでいこうと思います。

目標としてはpython programing trackに入っている4つのコースを終了させることです。

10日目でやった事

Introduction to python 終了

かかった時間:2.5時間

難易度:★☆☆☆☆

Intermedical python 終了

かかった時間:5時間

難易度:★★☆☆☆

Python data science tool box(part1) 終了

かかった時間:2.5時間

難易度:★★★☆☆

Python data science tool box(part2)終了

かかった時間:3.5時間

難易度:★★★★☆

感想

今まで扱ってきたOctaveとは勝手が違う点が多くてかなり戸惑ったがいずれなれるだろう。初日にしてはかなり深い内容まで踏み込んでしまったように思う。特に最後のコースでは集中力も切れてきて、かなり内容がうまく頭に入ってこなかった。

明日は今日やったことの復習と「入門ノート」使って基本的なことの確認をもう一度行いたいと思う。

DataCampのサービス自体はかなり良かった。

最初が無料なのでやってみたところ、3日間だけ無料で使えるという感じになり、「おラッキー」とか思ってこの3日間でできるところまでやってやろうと思っていたら、なぜか1週間無料で使えるようになったぜ!と通知が来た。

あーある程度やりこむと無料期間延長させて、もっとやり込ませて最終的には課金させようって魂胆ですね。お上手。

内容はprogateに動画の解説をプラスして内容もかなり充実させたバージョンと思ってもらえるとわかりやすいと思う。コンテンツ量がかなり膨大であり、広い難易度をカバーしている点がprogateとは大きく異なる。ゲーム形式で経験値が溜まっていく感じは同じ。

これからどのコースを取っていくかが悩みだなあ。

とにかくpythonとても難しかった!です。そして眠い。。

明日に向けて

pythonの基礎固めを重視しよう。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day9

今日の目標

Machine Learning - Stanford University | Coursera

を始めてから8日目となります。

残りWEEK9,10,11ですが、10と11はすぐに終わりそうなので今日中にこのコースを修了します!

9日目でやった事

Machine Learning WEEK9 終了

全部でかかった時間:9時間

難易度:★★☆☆☆

内容

異常検知

ガウス分布

アルゴリズム

・異常検知vs教師あり学習

・特微量の決め方

多変量ガウス分布

・異常検知

・original model vs 多変量ガウス分布

Recommendation system

協調フィルタリング

・low rank matrix factorization

感想

教師なし学習の続きです。前半の異常検知は分布からいかにそれるかを数学的に計算する手法であり、感覚的にもかなりわかりやすかったです。

後半は映画のレビューサイトでオススメの映画を表示する仕組みを例にして、recommendation systemを学びました。いきなり具体例から入っていったのでかなり面白く授業を聞けました。プログラミング課題は実際に映画レビューのデータを学習させて、自分の好みの映画を入れるとオススメの映画を表示するアルゴリズムを実装できたのがかなり楽しかったです。

課題自体はベクトル化して考えるとほんの数行で書けてしまい、改めてOctaveの利便性を実感しました。(pythonでやったことないので比較はまだできませんが、、)

最後の集大成のプログラミング課題でしたが今までで一番スムーズにいけた気がします。recommendation systemは自分で実装できたらかなり面白そうです。

Machine Learning WEEK10,11 終了

全部でかかった時間:3.5時間

難易度:★★☆☆☆

内容

大きなデータセットにおける最急降下法

・バッチ最急降下法

・確率的最急降下法

・ミニバッチ最急降下法

発展的トピック

・オンラインラーニング

・Map reduce

Photo OCR

・Sliding window

・データ生成の方法

・ceiling analysis

Last message

感想

プログラミング課題はなく小テストだけなので、ある意味気楽に授業を聞けました。

今まで習ったことに対しての補足や、実践的に機械学習を行う際の流れ、実装で注意すべきポイントを学びました。かなり実践的なアドバイスもあり、(10倍のデータを得るためにはどれくらいの時間がかかるか自問せよ、など)最後の最後まで重要な内容でした。

特に実際にphotoOCRのアルゴリズムを実装するためにはどのような過程があるのか、今まで自分たちが習ったアルゴリズムに分解して示されたことで、今まで習ったことを応用すればここまでできてしまうのか、と驚きました。また、オンラインラーニングなどは身近なところでもたくさん使われていて、グノシーなんかもこれを使ってニュースを個人にカスタマイズしているのだと思います。

最後のメッセージも良かったです。。AndrewNg先生は生徒のことを本当によく想像して、もしくは知っているのだなと思います。つまずきやすいポイントを完璧に理解しているので、そこは説明を増やすなどの工夫があり、初学者の自分でもほぼ完璧に授業の内容は理解することができました。

これが無料で受けられてしまうなんて素晴らしいですね。

お金を払ってでも十分満足できるコースだと感じていたので、課金して記念に修了証を発行しました。

機械学習面白いな、本当に受けて良かった。

Ng先生のDeepLearningのコースもあるようなので、それもそのうち受けようと思います。

明日に向けて

あー疲れたと思ったらいつの間にか朝4:30になってました。なんとかmachine-learningのコースを修了できたので謎の充実感があります。

さて明日からはpythonを頑張ります。

「入門ノート」使うか、DATACAMP使うかちょっと迷ってます。

DATACAMP試してみて合いそうだったらそっちでやるかな。。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day8

今日の目標

Machine Learning - Stanford University | Coursera

を始めてから7日目となります。

ついに1週間経ちました!このコースも残りあと少しです。

今日はWEEK7のプログラミング課題とWEEK8まで終わらせたいなあ。

8日目でやった事

Machine Learning WEEK7 プログラミング課題終了

全部でかかった時間:7時間(昨日の4時間含む)

難易度:★★☆☆☆

感想

今回のプログラミング課題は意外とすんなりクリアできました。

最初の頃の課題はかなり悪戦苦闘していたので、それと比べるとスムーズに課題を進めることができるようになってきました。

前半はSVM、後半はスパムメール分類器のアルゴリズムです。

実際にスパムメール分類器を実装できるところまで課題が組まれているのでやっていて非常に面白かったです。本当に課題がよくできていますね、1週分につき5000円くらいとってもいいレベルです。これが無料でできるって本当にいい時代。。

Machine Learning WEEK8 終了

全部でかかった時間:8時間

難易度:★★☆☆☆

内容

クラスタリング

・K平均法

・コスト関数

・random initialization

・クラス数Kの選び方

次元削減

・データ圧縮

・ビジュアル化

・主成分分析(PCA)

・reconstruction

・PCA適応のアドバイス

感想

WEEK8は教師なし学習について扱いました。

K平均法はアルゴリズムが非常にシンプルな割にやっていることはとても面白いので、かなり汎用性がありそうだと感じました。課題では画像の容量を圧縮するために、圧縮後の各ピクセルの色を16色に限定して、各ピクセルがどの色に該当するかをクラスタリングしました。なんかこういうエフェクト見たことあるなあっていう画像が出来上がります。

PCAについてはロジスティック回帰やニューラルネットワークなどの教師あり学習でも応用できるし、使う頻度もかなり高そうです。やっていることも感覚的に理解しやすいです。なぜ分散共分散行列を計算するとPCAがうまくいくのかは非常に気になりましたが、、

課題では人の顔画像データの特微量をPCAによって下げるということをやりました。データサイズは1/10になるにも関わらず、reconstructionしたらちゃんと元の画像に近いものに戻っていたのが意外でした。

明日に向けて

残るはWEEK9,10,11ですが、10,11はプログラミング課題がなくそれぞれ想定所要時間が1時間半ほどなので、明日この3つを気合いで終わらせたいと思います。

ちなみに修了証には課金する気満々でいます。これだけ頑張ったらその証が欲しくなるよね、誰しも。。

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day7

今日の目標

Machine Learning - Stanford University | Coursera

を始めてから6日目となります。

あまり時間が取れないので、WEEK7のプログラミング課題の手前までできたらいいかなと思います。

(ブログ書かずに寝落ちしたので、翌日に書いております。)

7日目でやった事

Machine Learning WEEK7 途中まで

かかった時間:4時間

難易度:★★★☆☆

内容

SVM(Support Vector Machine)

・Large margin intuition

SVM決定境界

SVMの数学的背景

Kernels

・Kernelとは

・ランドマークを決める

・Gaussian Kernels

SVMの実践的活用

・liner kernelとgaussian kernel

・そのほかのkernel

・多クラス分類

・ロジスティック回帰 vs Kernel

感想

今回はSVMを主に扱ったが、SVMがやっていることの感覚を理解するまでにかなりのステップがあったので、今までのアルゴリズムに比べると一番理解が難しかったように思います。

similarity(どれだけ近い値か)という概念を取り入れることによってより複雑な非線形関数を導くことができるという発想にはなるほどな、と感じました。

ただ、まだなんとなくこんな感じか?という感覚でしか理解できていない気がするので課題によって具体的な事例を用いながら理解していきたいです。

 

そう言えば機械学習を始めてから1週間が経ちました。なぜかとても長い時間が経ったように感じます。

人って1週間で知らなかったことをこんなに学べるんだ、という気持ちです。

ただ一方で知れば知るほど機械学習の奥深さを知ることになりました。

1ヶ月でどのレベルまで行けるのか、たかが知れているとは思いますが、ちょっと楽しみです。

明日に向けて

WEEK7のプログラミング課題を終わらせて、WEEK8も終わらせたいです。

明後日までにこのコースをなんとか修了したい..!!

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day6

今日の目標

Machine Learning - Stanford University | Coursera

を始めてから5日目となります。

あれ、まだ5日目か。この5日間充実し過ぎててめっちゃ長く感じます。。

今日はWEEK5のプログラミング課題を終わらせて、WEEK6も終わらせちゃいたいです。

6日目でやった事

Machine Learning WEEK5 終了

全部でかかった時間:9時間(昨日の5時間含む)

難易度:★★★☆☆

内容

コスト関数と誤差逆伝播

誤差逆伝播アルゴリズム

誤差逆伝播法のイメージ

誤差逆伝播法の実装における注意

・Unrolling prameters

・Gradient checking

・Random Initialization

(この辺適切な日本語訳がない..)

・全てを合わせる

感想

WEEK4に引き続き、ニューラルネットワークの回でした。

内容はbackpropagationについてがほとんどで、それをいかにして実装していくかという部分にフォーカスされていました。

やっている事を式にするとかなり複雑であり、実際アルゴリズム自体が複雑です。

なのでこれをイチから自分で書けと言われるとちょっと厳しい気もします。まとめたノートを見つつ繰り返しで身につけていくしかないですね。

課題自体はかなり誘導がされていて今回は解きやすかったように感じました。

それにしても毎回思いますが、この課題は本当によくできていますね。。授業内容の理解にはうってつけです。

課題の最後で実際にニューラルネットワークアルゴリズムを動かして、Iterationを400にすると99%以上の精度を出すことができました。その分計算に結構時間がかかっていて(15分くらい?)、今までの計算でこんなに時間がかかっていることはなかったので、計算量の膨大さを実感しました。

何はともあれニューラルネットワークはマジですごいですね。マジで強力なツール感が半端ないです。

Machine Learning WEEK6 終了

全部でかかった時間:7.5時間

難易度:★★★☆☆

内容

学習アルゴリズムの評価

・Train/Cross Validation/test error

Bias vs Variance

・Train/Cross Validation error の表示

・lambdaの選び方

・Learning curves

・Large errorが起こった時の対処法

・Neural Networkとoverfitting

スパムメール分類器を作る

・エラー分析

歪みデータ

・精度と再現率

・F1score

機械学習におけるデータの重要性

・大きなデータ適用に関する論理的解釈

感想

今回は将来的に機械学習を実装するにあたって注意しておいたほうが良いtipsを習いました。

特に強調されていたのが、エラーが発生した際に盲目的にデータの数を増やそうとしたり、フィーチャーの数を増やそうとするのではなくて、何が原因なのか(bias vs variance)を見極めて何をすべきかを考えよ、ということです。

かなり実践に近い内容で、いざ機械学習を利用しようと思った時にまずぶち当たる壁に対してあらかじめ答えを用意しておいてくれている回でとても勉強になりました。

今回習ったことは実際に機械学習を実用化する時まで頭に入れておきます。

特に共感したのが、意思決定のスピードを上げるための数的な指標を用意せよ、という点です。昨年度、長期インターンベンチャー企業で働いていて感じたのが、意思決定の難しさでした。ビジネスの世界では根拠が明確にない状態での意思決定が求められます。それによって今後の結果が大きく変わったりするので、経営者に求められる大事なスキルの一つです。なので、その難しい意思決定はできるだけデータドリブンであるべきであり、今回学んだような数的指標があるだけでその質に大きな差が出るわけです。

実践的なことまで考えて教えてくれている点は、Ng先生がさすがだなと思わざるを得ません。

最後の方の精度・再現度の話は、まさに医学部で習う、検査の感度・特異度の話と繋がる話でした。

明日に向けて

明日は所用で実質稼働時間は6時間程度になりそうです。

なんとかWEEK7を終わらせられると良いのですが。。

所感

今日でこのコースも後半戦に差し掛かりました。

小テストのページで「最近この課題を終わらせたのは〜人です」みたいなのが毎回出るのですが、week1の時はそれが3万人くらいだったのに今では1万人くらいになってます。結構途中で離脱している人もいるみたいです。

全くのプログラミング初心者が、ここまでよくリタイアせず続けてこれたなと思います。自分を褒めてあげたいです。

ここまでで感じたのは、短期で一気にやっちゃう方が前回までの内容も頭に入っているし、進め易いんじゃないかと思っています。

ただ何よりも、Ng先生の解説はマジでわかりやすいです。

Medilinkの清澤先生を超えるレベルでわかり易いので(医学部ネタですみません)、初心者の人でもぜひトライしてもらいたいなあって思います。

 

プログラミング初心者が機械学習を1ヶ月勉強し続ける #day5

今日の目標

Machine Learning - Stanford University | Coursera

を始めてから4日目となります。

今日はSTEP4を終了させて、STEP5をできるだけ進めたいです。

5日目でやった事

Machine Learning WEEK4 終了

全部でかかった時間:7時間

難易度:★★☆☆☆

内容

導入

ニューラルネットワークの成り立ち

ニューラルネットワーク

・Forward Propagation

・ベクトル化

ニューラルネットワークの適応

・AND, NOT

・XOR, XNOR

・多クラス分類

感想

WEEK4は比較的時間をかけずに終わらせることができました。

ニューラルネットワークに関してはWEEK5にも続くので内容としてはまだ土台となる部分だけだったように思います。

今まであやふやだったニューラルネットワークの仕組みがここでしっかりと勉強できたのはとても楽しかったです。この仕組みは計算量は膨大になりそうですが、現在ディープラーニングへと発展して使われている所以がわかりました。ディープラーニングに関しても早く学びたいです。それにしても行列ってほんと便利ですね。。

また、プログラミング課題の題材も、サンプルの手書き数字画像を0~9に自動で割り振るというアルゴリズムで、それが完成した時は感動しました。今回は普段より時間をかけず課題を終わらせることができました。

最初は具体値で考えること、ターミナル上でコーディングして手を動かすことで、こまめに試してみることが大事そうです。

 

Machine Learning WEEK5 プログラミング課題直前まで

かかった時間:5時間

難易度:★★★☆☆

backpropagationのアルゴリズムがかなり複雑になってきており、これを明日ちゃんとコーディングできるのか若干心配ではありますが、、

Ng先生もこの数学的な仕組みを理解する必要はなくて実装できるようになることが大事だと言っていたので、その言葉を信じて明日実装の訓練をしていきたいと思います。

内容の詳細は明日書きます。

 

明日に向けて

明日はWEEK5,WEEK6を終わらせてWEEK7に突入したいです。

このたった5日間でもわかったことがかなり増えてきました。

新しい事を学ぶって楽しいですね。