今日(日曜日)は、Coursera(Machine Learning)のWeek4の締切日ですが、Week4とWeek5を一気にやってしまい、もうすでにWeek6に突入です。Week4からはニューラルネットワークで、Week5には難しいとされるバックプロパゲーションも登場してきました。
使用する言語であるOctaveにも徐々に慣れて来たのですが、いざ動画での数学的な説明をプログラミングコードに置き換えようとすると一筋縄ではいきません。というのも、動画は主に数学的な説明が中心であり、プログラミングとしてどう実装するかまでの説明はあまりありません。プログラミングに関しては、課題文にも多少手ほどきがあり、またサイトには課題ごとのResourcesページがあるので、それを読みながら実装していく感じです(この辺の説明文はすべて英語)。
やはり複雑な行列計算になるので、頭の中に行列のマトリクスがイメージできないとエラーばかりでてしまいます。数学的な数式をコード化するのはまたちょっとテクニックが必要という感じです。なので何回も再提出してようやくクリア。しかし、クリアしたからと言っても、完全に理解したかというと多少怪しいところもあります。なので、バックプロパゲーションについては、forループを使うコード、使わないコードの2種類を書いてみて試してみました。
以前は数式を見てもわからなかったし、当然数式の意味がわからなければ、コードを見ても分かるわけがなかったのですが、いまは見れば分かるというくらいには理解が深まりました。
Udacity: Deep Learningコース(無料):
予定より先に進んでいるので、またUdacityの授業のほうも見ていました。前回の「Intro to Machine Learning」と「Machine Learning」の2つのコースに関しては、概念を理解するにはいいかもしれませんが、プログラミングしながら学ぶという感じではないのでもうやめようかなと(そもそも無料なので辞めても構わない)。その代わりにUdacityにある「Deep Learning」コース(無料:3ヶ月)のほうが面白そうなので少し見てみました。
このコースはGoogleによってつくられたコンテンツのようですが、Googleのエンジニアっぽい人が講師です。やや真面目そうな感じで前述の2つのコースとは違います。レベルもAdvancedなので、ある程度機械学習をやってきた人が見る感じなのだと思います。
内容的には、基礎知識の説明が終わると、すぐにMNIST(手書き文字認識)、そしてデュープニューラルネットワーク、コンボリューショナルニューラルネットワーク・・・と進んでいきます。コンボリューショナルニューラルネットワークに興味があるので(そこまで行けるかわからないけれども)、やってみようかなと。ディープラーニングのコースとなるとだいたいが有料で、このコースだけは無料のため試して見る分にはいいかもしれません。
言語はPython、そしてJupyter notebook(iPython notebook)を使用して、GoogleなのでTensorflowライブラリを用いるようです。Tensorflowに慣れるにはいいかもしれません。Jupyter notebookは以前インストールしてあったので、そのまま使えました。一応細かい説明などしてくれますが、やはり上級者向けだけあって、どんどん先に進んでいきます。なんとなくTensorflowに触れておしまいというコースにも見えなくはないのですが。
現在進めているCourseraのMachine Learningコース(全11週)が終われば、できればディープラーニングへ移行していきたいと考えています。以下は有料ですが、今後の理解度によっては受講してもいいかと。
・Coursera 「Deep Learning」($49/月)
・Udacity 「Deep Learning」($399?)ナノディグリーコース
追記:
もう少しこのUdacityのDeep Learningコースを見続けて見ましたが、Deep Learningの概要を短時間で説明しているという感じでした。プログラミングの課題もいくつかあるのですが、その内容についての細かな説明などはなく、勝手に各自でパラメータを変えてみたりしてという感じです。Lesson3の中ほどでバックプロパゲーションも登場するのですが、約2分間でさらっと説明するだけです(以下がダイアグラム)。
どのような手順で演算していくかまでは説明がありません。ライブラリを使えばすぐに済んでしまうのかもしれませんが、その使い方の説明もないので、おそらくこのコースはざっくりとDeep Learningの紹介をしているレクチャーというかんじで、実際にプログラミングできるようになるためのコースではなさそうです。
Lesson4のコンボリューショナルニューラルネットワークまで見てみましたが、大まかな説明なので期待していたほどの収穫はありませんでした。やはり無料コースであるから、この程度なのかもしれません。
これに比べれば、CourseraのMachine Learningコースは、細かく計算方法まで教えてくれるので、プログラミングしたいという人にはいいと思います。もしくは、ディープラーニングを学ぶなら有料のコースのほうがいいのかもしれません。
使用する言語であるOctaveにも徐々に慣れて来たのですが、いざ動画での数学的な説明をプログラミングコードに置き換えようとすると一筋縄ではいきません。というのも、動画は主に数学的な説明が中心であり、プログラミングとしてどう実装するかまでの説明はあまりありません。プログラミングに関しては、課題文にも多少手ほどきがあり、またサイトには課題ごとのResourcesページがあるので、それを読みながら実装していく感じです(この辺の説明文はすべて英語)。
やはり複雑な行列計算になるので、頭の中に行列のマトリクスがイメージできないとエラーばかりでてしまいます。数学的な数式をコード化するのはまたちょっとテクニックが必要という感じです。なので何回も再提出してようやくクリア。しかし、クリアしたからと言っても、完全に理解したかというと多少怪しいところもあります。なので、バックプロパゲーションについては、forループを使うコード、使わないコードの2種類を書いてみて試してみました。
以前は数式を見てもわからなかったし、当然数式の意味がわからなければ、コードを見ても分かるわけがなかったのですが、いまは見れば分かるというくらいには理解が深まりました。
Udacity: Deep Learningコース(無料):
予定より先に進んでいるので、またUdacityの授業のほうも見ていました。前回の「Intro to Machine Learning」と「Machine Learning」の2つのコースに関しては、概念を理解するにはいいかもしれませんが、プログラミングしながら学ぶという感じではないのでもうやめようかなと(そもそも無料なので辞めても構わない)。その代わりにUdacityにある「Deep Learning」コース(無料:3ヶ月)のほうが面白そうなので少し見てみました。
このコースはGoogleによってつくられたコンテンツのようですが、Googleのエンジニアっぽい人が講師です。やや真面目そうな感じで前述の2つのコースとは違います。レベルもAdvancedなので、ある程度機械学習をやってきた人が見る感じなのだと思います。
内容的には、基礎知識の説明が終わると、すぐにMNIST(手書き文字認識)、そしてデュープニューラルネットワーク、コンボリューショナルニューラルネットワーク・・・と進んでいきます。コンボリューショナルニューラルネットワークに興味があるので(そこまで行けるかわからないけれども)、やってみようかなと。ディープラーニングのコースとなるとだいたいが有料で、このコースだけは無料のため試して見る分にはいいかもしれません。
言語はPython、そしてJupyter notebook(iPython notebook)を使用して、GoogleなのでTensorflowライブラリを用いるようです。Tensorflowに慣れるにはいいかもしれません。Jupyter notebookは以前インストールしてあったので、そのまま使えました。一応細かい説明などしてくれますが、やはり上級者向けだけあって、どんどん先に進んでいきます。なんとなくTensorflowに触れておしまいというコースにも見えなくはないのですが。
現在進めているCourseraのMachine Learningコース(全11週)が終われば、できればディープラーニングへ移行していきたいと考えています。以下は有料ですが、今後の理解度によっては受講してもいいかと。
・Coursera 「Deep Learning」($49/月)
・Udacity 「Deep Learning」($399?)ナノディグリーコース
追記:
もう少しこのUdacityのDeep Learningコースを見続けて見ましたが、Deep Learningの概要を短時間で説明しているという感じでした。プログラミングの課題もいくつかあるのですが、その内容についての細かな説明などはなく、勝手に各自でパラメータを変えてみたりしてという感じです。Lesson3の中ほどでバックプロパゲーションも登場するのですが、約2分間でさらっと説明するだけです(以下がダイアグラム)。
どのような手順で演算していくかまでは説明がありません。ライブラリを使えばすぐに済んでしまうのかもしれませんが、その使い方の説明もないので、おそらくこのコースはざっくりとDeep Learningの紹介をしているレクチャーというかんじで、実際にプログラミングできるようになるためのコースではなさそうです。
Lesson4のコンボリューショナルニューラルネットワークまで見てみましたが、大まかな説明なので期待していたほどの収穫はありませんでした。やはり無料コースであるから、この程度なのかもしれません。
これに比べれば、CourseraのMachine Learningコースは、細かく計算方法まで教えてくれるので、プログラミングしたいという人にはいいと思います。もしくは、ディープラーニングを学ぶなら有料のコースのほうがいいのかもしれません。