カエデ自動機械

ちょっとしたものづくりや電子工作のメモなど。技術開発とは今は呼べないかな。

Courseraのオンライン講座について

何かしら勉強したいけど、何をしたら良いかわからない時というのはあります。

そういう時に、Courseraのオンライン講座をたまに使っています。
www.coursera.org

どういう時に使うか

簡単に言えば、何か勉強してみたいけどこれぞというネタが無いときに、興味がある講座を選択して受講しています。


一般に、ものづくりやプログラミングの勉強というのは、まず作りたいものがあって、それの実現のための手法を学んでいくというやり方が一番楽しく、動機付けが長続きするとは言います。

一方、作りたいものが思いつかないとか、作りたいものはあるけれど漠然としている、ハードウェアの場合は材料を買い揃えるのが経済的に厳しいとか、やはりハードルは存在し得るものです。

私も勉強自体がまあまあ好きなクチで、何か興味があることを深堀りして仕事に役立てても良し、人生を豊かにしても良し、怠惰な時間を過ごさなかったという無意味な充実感を得るも良しだと思うのですが、これぞというネタが無いときもある。

先日のPythonによる制御工学入門は、作りたいものがあるとは厳密には言わないかもしれませんが、

  • ちょうど仕事で触れたアクチュエータ制御に興味を持ったこと
  • 大学時代制御工学を全く勉強しなかった後悔があったこと
  • ちょうど良さそうな本が発売されたこと

が重なって、比較的目的や興味がハッキリしている、私にしてはちょっと珍しい例でした
ktd-prototype.hatenablog.com

そういうのが無いときには、Courseraで、大学で学んだ機械工学の復習とか、流行りの機械学習の勉強とかをしてみるのです。

講座の合間に小テストやプログラミングの宿題(ソースコードをアップロードして自動採点される)があるため身につきやすい気がするし、有料ですが修了証も発行できるので達成感があります。
プログラミングはMATLABで、講座受講中は特別無料ライセンスが発行されます。

Coursera自体がメジャーになれば履歴書にも書けるかも?

英語のリスニングの訓練にもなります。実は私はリスニングが一番強く苦手意識を持っています。数値化した時に一番低いかは知りませんが。

今まで受けた講座

Machine Learning (Prof. Andrew Ng, Stanford Univ.)

おそらく最も有名かつ好評な講座で、機械学習について一通りを扱っています。1年半前の正月休みを利用して受講。

Ng教授はCoursera自体の設立メンバーでもあり、Stanford大の教授でもあります。

教師ありの(線形回帰、SVM、NNとか)、教師なしのクラスタリング、精度評価のやり方(正解率、適合率、再現率、F値とか、その他諸々)等の一通りの理論を教わり、ダウンロードしたデータセットを元にMATLABアルゴリズムを実装する宿題が出ます。

前評判通り大変わかり易く、機械学習の一通りを学んだ気にはなれます。

少し惜しかったのは、MATLABで宿題をしていると、機械学習のプロセスで行われる行列同士の掛け算が、掛ける行列の行数と掛けられる行列の列数が合っていないとそもそも実行できない という点があります。

当たり前ではあるのですが、これの何が問題かって、実装を誤っているとエラーを吐いてスクリプトが実行されないため、間違った答えを出すことすらできない んですよね。

従って、エラーを吐かないように試行錯誤をするという本質から外れた努力によって、機械学習の各種アルゴリズムを実際に計算するための行列計算手順を理解せずに宿題をクリア出来てしまう という問題がありました。

それをそのままにせず、本質的な理解に至るまで勉強するのがあるべき姿だとは思いますが、そこは個人の素養の問題で怠けてしまいました。



上記のように若干実装能力については疑念が残るのと、一周しただけではすぐ忘れてしまうという問題があり、私の機械学習リテラシーは低いままですが、それでも受講前とは雲泥の差となりました。

私の会社でもジンコウチノウだのデエプラーニングだのが流行っていて、猫も杓子も・・・という感じですが、一方できちんとわかって言っている人はごく限られている様子ですので、最も受けてよかった授業です。

企業のそういった体たらくは、どうやら米国でも頻繁にあるようですが・・・Ng先生も、この講座を全て理解すればシリコンバレーの大抵の人よりも理解が深いと評していたような??


Machine Design Part 1 (Prof. Kathryn Wingate, Georgia Institute of Technology)

機械設計の講座のPart1。ちょうど1年半くらい前に受講しました。

元々Northrop Graman社(だったかな?)の技術者だった人の講座で、ネームバリューだけで相当な期待を持たせてくれます。

機械設計とありますが、実際の内容は材料力学となります。たしかに強度設計が一番基本かも?

様々な形状と荷重印加状況における梁のたわみ、内部応力等を丁寧に計算してくれます。応力集中とか破壊の話もあります。

ほぼすべて忘れていたのでかなり手こずりはしましたが、レベル的には学部レベルのはずです。

ちなみに、この講座に関しては宿題はMATLABでのプログラミングではなく、手計算でのたわみや応力の計算をすることになります。

ヤード・ポンド法で計算するので大変ですが、計算や(必要に応じた)単位換算は全てExcelで行ったので、サクサク進められました。

機械設計については一通り復習したいと思っていたので、受講してよかったと思っています。Part2以降にも期待です。

Robotics:Aerial Robotics (Prof. Vijay Kumar, Univ. of Pennsylvania)

ロボティクス講座シリーズの第1弾、ドローン制御の講座です。

これは正直かなり難しかった。講座が難しいというよりは、私の頭の働きがイマイチということだと思いますが・・・

空中のドローンに印加されるプロペラ推力、モーメント、重力等を書き下して運動方程式を記述します。最初は一次元運動、次に二次元、三次元と少しずつ拡張していきますので、

高校や大学初期で習うニュートン力学と本質的には同じだと思いますが、行列表現も使用されるようになり直感的理解からは離れていく印象です。

最終的には三次元の経路に沿った飛行が可能となるような制御パラメータ調整、躍度(加速度の時間微分)を最小とするための飛行制御等が課題として出されます。(MATLABで記述し、提出)

結構わからない点も多く、宿題と一緒にダウンロード可能な授業のレジュメや、講座に付設されるフォーラムでの他の生徒同士の相談等を参考に、無理矢理合格点をとっているような有様でした・・・

完遂して修了証ももらっていますが、あまり理解度は高くないため、スキルアップしたらもう一度受けてみたい講座です。

今後の使い方(予定)

勉強はしたいけど特にやりたいことがなくなって暇だなーって時に、また使おうと思っています。

しばらくは倒立振子ロボットやその附属機能を作りこんだり、勉強の題材として1から10まで読んで見たい本がいくつかある(ゼロから作るDeep Learningシリーズとか)ので、その所要は生まれないかも知れませんが・・・

集中的に受講すれば講座視聴のみ(小テストや宿題以外の部分)であれば1週間もあれば終わりますので、海外関連の仕事の直前にリスニングの訓練として聞くのもアリですね。