naoya_t@hatenablog

いわゆるチラシノウラであります

Coursera: Robotics: 1. Aerial Robotics〈修了〉

全6部から成るCourseraのRobotics特別講座

  • Aerial Robotics
  • Computational Motion Planning
  • Mobility
  • Perception
  • Estimation and Learning
  • Capstone

の第1講 Aerial Robotics(4週間コース)を受講しました。ドローンに関する講座です。
f:id:n4_t:20180508220849j:plain

ドローンは安全性の問題や法整備など課題は多いし実社会での応用はまだまだこれからなのかなと思いますが、物流・農業・建築・災害救助をはじめ様々な分野での活用が期待されています。未来を感じます。

この講座では、クワッドローター(推進に4つの回転翼を用いるドローン)の飛行を制御するのに必要な物理学(力学)が学べます。最終週の課題では、空中の与えられた経由点のリストから飛行コースを計画し、計画した軌道に沿った飛行に必要な推力やモーメントの計算を行うプログラムを実装します。*1
f:id:n4_t:20180508133512g:plain

プログラミング実習ではMATLAB*2を使います。Webで使えるアカウントが1ヶ月無料でもらえる*3のでそれを使います。

講義は全編英語で行われています。(英語字幕可、日本語字幕はいまのところ無し)
先生の英語は若干訛りがあるけれどゆっくり目に話してくれているように思いますし、比較的聞きやすい英語だと思います。
TAの女性が担当している補足資料のビデオは綺麗な英語で聞きやすいですけれど割と早口です。

剛体力学(剛体の回転とかモーメントとか角運動量とか慣性テンソルとか)が分からない、あるいは苦手な人は先にさらっておくか、力学の教科書を手元に置いての受講をおすすめします。*4

*1:下のGIFアニメーションは最終週の課題で実装したプログラムに適当なコース(通過したい空中の点のリスト)を与えてみたシミュレーション結果です((GIFアニメを吐き出すようにシミュレータを若干改造しました。

*2:以前Andrew Ng先生の機械学習の講義Octaveを触ったことがあるのでなんとなくそんな感じかなと思って臨みました。でも課題であらかじめ与えられるプログラムファイルは手元のOctaveで動かせるかと思ったら動きませんでした。

*3:期限に間に合わなくて次月に繰越になってもまたもらえます

*4:物理学・力学については高校物理レベル+α の知識、具体的にはセンター試験の物理は満点取ったけど大学では力学とか電磁気学の授業をちょっと覗いただけで単位は取ってないはず…ぐらいの知識で講義に臨んでの感想です。

続きを読む

deeplearning.ai受講メモ (2/24更新)

【追記】2/19全講座修了しました!

f:id:n4_t:20170926194609p:plain
https://www.deeplearning.ai/

Andrew Ng先生のディープラーニング専門講座 deeplearning.ai を受講したメモ。久々のCoursera!

  1. Neural Networks and Deep Learning
  2. Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
  3. Structuring Machine Learning Projects
  4. Convolutional Neural Networks
  5. Sequence Models

Courseraの中でもこの講義は Specialization という枠組みで、基本有料(月$49.00;講義ビデオを視聴するだけで課題なしCertificateなしで良ければ無料)のコース。最初の1週間は無料*1

講義はすべて英語*2
1つ目のやつは日本語や中国語の字幕が用意されていたけど、後の方は英語字幕だけだった。

*1:無料になるのは講座単位ではなく Specialization の枠組み単位らしい

*2:Andrewの英語を聞くのって前に受けたMachine Learningコースぶりか?いやそんなこともないか

続きを読む

Coursera: Introduction to FPGA Design for Embedded Systems

コロラド大学ボルダー校のTimothy Scherr先生による組み込みシステム向けFPGA設計入門の4週間コースをCourseraで受講しました。
f:id:n4_t:20180108232341p:plain

そもそもFPGAに関しては全くの初心者(電子回路とか論理回路については素人とまでは言わないけれど)で、中級者向けのこのコースについていけるのかは未知数でしたが、論理回路に関するなけなしの知識を総動員して最終週までたどり着けました。

Quizは満点が出るまでやり直して、無事100%で修了できました。(1/24)

受講の動機

去年の秋からCourseraの専門講義 deeplearning.ai を受講していて、第5講の開講が延期になって1ヶ月空いたので何か受けようかなと思ったのと、とある社内プロジェクトFPGAをいじることになったのとで受講を決めました。

概要

実際に手を動かしながら、FPGA開発の基礎を四週間で習得します。
プログラマブル・ロジック・デバイスの歴史
FPGAの選び方(各社のFPGAの特長やFPGAアーキテクチャの違い)
・開発環境の使い方(インストールから回路設計まで)
・回路設計ハンズオン(加算器からNios II*1を使った組み込みシステムまで)

生徒同士で採点し合うpeer assessmentの仕組みを採用しているコースなので、自動採点のみのコースと違って締め切りが重要になります。(システム的には課題の提出は可能ですが、採点してくれる生徒がいなくなってしまう為)

講義は全て英語で、とてもアメリカっぽい*2英語です。
英語字幕とトランスクリプションはありますが、日本語字幕は(現在のところ)用意されていません。

イントロダクションがスパイ・エージェント養成コースみたいな演出になっています*3が、ビデオを見ながらFPGA開発環境(IntelのQuartus Prime)をインストールして実際に使いながら進めていくハンズオン形式のチュートリアルといった感じでした。ビデオを適宜止めながら画面を操作するので、ビデオの長さ以上の時間がどうしてもかかります。

推奨環境

Quartus Primeの動作環境がWindowsLinuxRedHatもしくはCentOS)のみで、Macエミュレータを動かすのは非推奨、と明言されていましたが、残念ながら手元にはMacBookiPad Proしかないので、仮想化技術で行けるところまで行って、駄目なら駄目でその時考えることにしよう、と思って始めました。

Macでもなんとか最後まで受講できましたが、この講義に関してはWindowsマシンがあるならWindowsでの受講をお薦めします。

メモリは(WindowsにせよLinuxにせよ)8GB以上推奨、とのことです*4

Linux絡みの注意点

・講義でも使われている設計検証ツールModelSimの無料版は32bit版で、これを64bit環境で動かすのにあれこれ(デフォルトでは入っていないi686なものを)追加インストールする必要がありました。
・IP CatalogのライブラリからIP部品(乗算器、SQRTなど)を調達する時に出てくるMegaWizardが、先に進むごとに重くなって三ページ目ぐらいでフリーズします。これはCentOSのデスクトップ効果(ビジュアルエフェクト)を標準からCompizにするとなぜか直ります。(普通逆かなと思うんだけど)
・回路図でユーザ定義シンボルの右上に余計なテーブルみたいなのが表示されて、小さくはできるけど消し方が分かりませんでした。

macOS上で頑張りたい人のためのメモ

・最初Docker for Macで行けないか試しました。CentOSを入れて、画面はXQuartzに出してインストーラを走らせて、インストール自体は完了しますが起動しようとすると謎ダンプを表示して落ちます。(CentOSのバージョンを色々試したり、Xの画面が出なくて右往左往したりで半日ぐらい格闘してたと思います)。
・その後(Dockerは諦めて)VirtualBoxCentOS(6.9。依存ライブラリの都合上6.x系推奨)を入れた上で無事動きました。Dockerではハードウェア的な何かをチェックされて落ちたのでしょうか。
・メモリは8GB以上推奨とのことでしたが、3GB強程度の割当てで最後まで行けました。

以下受講記録

*1:IntelのソフトコアCPUで、XilinxでいうところのMicroBlazeに相当。RISCアーキテクチャCPUのFPGA実装。

*2:コロラドっぽいかはわかりません。

*3:Week 4でシステム設計ツールQsysを使って組み込みシステムを作る話のところで"By the time you are done, people may mistake you for Q!"って言ってるけどQって何?誰?と思った人。ジェームズ・ボンドのコードネームです。

*4:多分4GBなくても行けますが。

続きを読む

Les lois de Newton

Courseraで受講中のEPELの力学のクラス (Physique générale - mécanique) でニュートンの法則が3つ出てきたのでプリンキピアのラテン語原文を探してみた、というメモ。自分用。

プリンキピア (Principia) ないしプリンキピア・マテマティカ (Principia Mathematica) と言っても

があるわけですが前者のニュートン力学の方のプリンキピアです

ラテン語原文の下に、クラスで出てきたフランス語版を並べてあります

LEX I. - 慣性の法則

Corpus omne perseverare in statu suo quiescendi vel movendi uniformiter in directum, nisi quatenus a viribus impressis cogitur statum illum mutare.

(Première loi de Newton) "Tout corps persévère dans l'état de repos ou de mouvement uniforme en ligne droite à moins que quelque force n'agisse sur lui et ne le contraigne à changer d'état".

LEX II. - ニュートンの運動方程式, F=ma

Mutationem motus proportionalem esse vi motrici impressae, et fieri secundum lineam rectam qua vis illa imprimitur.

(Deuxième loi de Newton) "Les changements de mouvement sont proportionnels à la force motrice, et se font dans la ligne droite dans laquelle cette force est imprimée à l'objet."

LEX III. - 作用・反作用の法則

Actioni contrariam semper et aequelem esse reactionem: sive corporum duorum actiones in se mutuo semper esse aequales et in partes contrarias dirigi.

(Troisième loi de Newton) "A toute action, il y a toujours une réaction égale qui lui est opposée" ; autrement dit, les actions mutuelles de deux corps l'un sur l'autre sont toujours égales et opposées.

2012年振り返り

日本時間では間もなく元旦午後7時になろうとしていますが


ということで2012年振り返りエントリでも書きます。

と思ったのですが、特筆すべき事もあまりないので要点だけ:

機械学習三昧な1年でした。Octaveを覚えました。

2013年も、ゆるふわ且つ着実に進みます。皆さんどうぞよろしくです。

Quantum Mechanics and Quantum Computationの修了証頂きました

最近Courseraに時間取れていませんが、7月から9月に受講していたUmesh Vazirani先生の量子力学&量子計算のコースの修了証が届きました。
f:id:n4_t:20121020123014j:plain
傾斜スコアで 100.04862745098% だったので "WITH DISTINCTION" という表記がつきました。
スコアが100%以上だと付くようです。(ボーナス問題があったので傾斜スコアが100%を超えるケースがあって、満点は多分103%ぐらい)

Courseraレポート(〜9/23)

前回までのあらすじ(〜9/8)

9/18からScalaで学ぶ関数型プログラミングのクラスが始まったけど、参加するかは未定。

参加中のクラス

Quantum Mechanics and Quantum Computation (Umesh Vazirani, UCB) - 7/17開講; 全課程(8週)終了

  • Week 8 (最終週)
    • Groverのアルゴリズム
    • 量子探索の計算量の下限
    • BQP (Bounded-error Quantum Polynomial time) クラス
    • まとめ

Final Exam: 今から受ける。締め切りは日本時間で9/24(月)15:59。
→Courseraサーバダウン→復旧したので受験→まさかの満点(90/90)
通常点7割、Final Exam3割で換算して99.65%取れているので、修了証発行基準(80%)はクリア。

Algorithms, Part I (Robert Sedgewick & Kevin Wayne, Princeton) - 8/12開講; 8/26参戦; 現在6週目

ところでこのコースは

No certificates, statements of accomplishment, or other credentials will be awarded in connection with this course.

ということで修了証は出ないのだけれど、プログラミング演習(Java)が良い感じにチャレンジングなので続行。

  • Week 5
    • 二分探索木(BST): 2-3木, 赤黒木, B木
    • 1d範囲検索, 直交線分の交差検索, Kd-Trees, 区間検索木, 長方形の交差判定
    • とりあえずExercise問題を開いてから解けないところだけ講義ビデオを見た
    • とはいえSedgewick先生直々の赤黒木講義を観てないのは勿体ないのであとで観る
  • Programming Assignment 5
    • Kd-treeの実装。新幹線の中で書いた