これまでのあらすじ:
2016年3月、フェルト生地を手で裁断している際にレーザーカッターがあれば複雑なカットが容易にできるなあと思って、安価になってきたレーザーカッターを購入しようと思ったのがきっかけ。調べていくうちに、合板も切れたほうがいいと思うようになって、CNCルーター(CNCミリング)についても考えるようになった。
Arduinoは以前から使っており、CNCシールドがあると気付いて自作も可能と思うようになった。当初はShapeOkoやX-CARVEを参考にMakerSlide、OpenRail、V-Wheel、2GTタイミングベルトなどで5万円くらいで自作しようと思っていた。AliExpressでも部品が安く買えることが分かって、しばらくは部品探し。探せば探すほど安くて本格的な部品も見つかってくるので、そんなにケチらなくてもいいのではないかと徐々にスペックアップ。最終的には剛性や精度のことも考えてボールスクリューやリニアスライドを使うことになり、予想以上に重厚な3軸CNCマシンをつくることに(約7万円)。
構想から約5週間(制作約3週間)でルーターとレーザーともに使えるようになり、現在はgrbl1.1+Arduino CNCシールドV3.5+bCNCを使用中(Macで)。余っていたBluetoothモジュールをつけてワイヤレス化。bCNCのPendant機能でスマホやタブレット上のブラウザからもワイヤレス操作可能。
その他、電子工作・プログラミング、最近は機械学習などもやっています。基本、Macを使っていますが、機械学習ではUbuntuを使っています。


CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:

*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。

2017年10月1日日曜日

Coursera Deep Leaning Specialization: Course 1 終了

CourseraのMachine Learningコースが終わってしまったので、引き続きDeep Learningコースを受講することにしました。このコースは$49/月の有料コースですが、最初の1週間はお試しということで無料です。前回のMachine Learningコースが充実していたので、1週間すぎて有料になっても構わないと思い、とりあえず登録してみました。


Deep Learning Specializationというコースで、大きくは以下のコースで構成されています。

・コース1(4週):Neural Network and Deep Learning
・コース2(3週):Improving Neural Networks: Hyperparameter tuning, Regularization and Optimization
・コース3(2週):Structuring Machine Learning Projects
・コース4(未定):Convolutional Neural Networks
・コース5(未定):Sequence Models

特に興味があるのがコース4のCNNですが、まだコース4と5は開講していません(そろそろ開講するらしいですが)。コース単体での受講もできるようですが、せっかくなので順を追って受講し、コース4までは到達したいと思っています。

UdemyのGANコース:
しかしながら、同時にUdemyの以下のGANのコースも気になっています。こちらも有料(1200円/割引価格)のコースです。
個人的にGANを使った画像生成に興味があるので、このコースを受講してみたいのですが、まだまだDeep Learningの知識やスキルも追いつかないと思うので、CourseraのDeep Learningコースが終わったら、このGANのコースも受講してみようかと考えています。

以前から独学で機械学習を学んでいたけれども、このようなオンラインコースを受講したほうが理解が早いということが、前回のCoursera Machine Learningコースで分かったので、興味あるコースをいろいろ調べています。書籍で勉強してもいいのですが、書籍だとおそらく途中で投げ出してしまいそうなのと、こういった専門領域の書籍は値段的に結構高いので、必要以上に書籍は購入しないようにしました。情報的な内容に関しては、論文なども含めてかなりネットからも入手できるし、わざわざ専門書を買うまでもないかと。それとこのようなコースだと知識だけでなく、プログラミングの課題もあるので、理解というよりも実践的なスキルが身につくような気がします。


Coursera コース1(4週):Neural Network and Deep Learningを開始
ということで、早速Courseraのこのコースを開始してみました。Week1は概要やこのコース自体の説明などで、特にプログラミングするなどの技術的なことはしませんでした。前回受講したMachine Learningコースとも内容が重なる部分もあるので、さらっと聞き流す感じでも大丈夫でした。同じように動画途中でのミニクイズがあり、Week最後にあるクイズは前回のコースでは5問でしたが10問(8問以上正解で合格)に増えていました。このクイズが結構難しくて、というのも英語なのでよく読まないとすぐに間違ってしまいます。前回のコースでも何回もやり直しました。
Week2からようやく実際的な内容に入っていくわけですが、前回のMachine Learningコースで学んだ内容と重なっている部分も多いという感じです。
ただ今回のコースはPython(Jupyter Notebook)、Numpyを使うので、それに合うアルゴリズムになっているのか微妙に違います。個人的には、Numpyよりも前回使っていたOctave言語のほうがシンプルで分かりやすいという印象でしたが、Numpyにも慣れるという意味で前回の復習も兼ねてすすめてみました。前回のコースのおかげか、Week2まではあっさり終わってしまい、残すところWeek3とWeek4だけです。
Week3からより本格的にニューラルネットワークの勉強です。それと同時にNumpyに則した行列計算方法や偏微分の説明が何回も出てきます。Week最後のプログラミング課題はブラウザ上でJupyter Notebookを使うので、以前のコースよりも便利になったという感じです。相変わらず数行を穴埋めしていく課題なので難しくないのですが、PythonやNumpyには慣れていないと記述の仕方がわかならくなるときもあります。そうやってNumpyにも慣れていきつつ、Week4に入ってしまいました。
この週で最後、複数のレイヤーを持つニューラルネットワークの実装です。相変わらずバックプロパゲーションは面倒で、前回のコースでもやったので原理は分かるのですが、複数層に対応できる一般化した式をいざNumpyで実装となるとけっこう大変でした。前回のコースでもフォワードプロパゲーションとバックプロパゲーションを復習しておきたいと思っていたので、今回Numpyで試してみてまたさらに理解が深まったという感じです。
Week4の最後のプログラミング課題は、一旦計算した値をキャッシュに記憶させておいたり、連想配列のようなディクショナリに変数を登録しておいたりというテクニックを多用しているので、このへんが慣れなくてForumを覗いてなんとか実装することができました。Numpyにおける、forループを使わない行列計算の方法、ブロードキャストなども慣れていないので、Deep Learningの内容というよりはNumpyについてももう少し勉強が必要という感じです。


コース1(4週):Neural Network and Deep Learning終了
無料期間(1週間)ということで試しに受講してみましたが、3日くらいで終わってしまいました。前回のMachine Learningコースを受講していれば、Week1と2は聞き流す程度でもいいと思います。実質、Week3とWeek4をやればいいのかもしれません(それぞれ1日ずつ)。
成績は94.4%です。プログラミング課題はすべて100%で提出しましたが、クイズ(10問中8問正解で合格)のやり直しはせず、そのままどんどん先に進んで行った結果です。もう少し理解を確実にするために復習は必要だと思いますが、次のコース2も受講し始めてしまいました。早くCNNやGANまで進みたいため急ぎがちになってしまいますが、そもそも機械学習やDeep Learning自体が面白いのでついつい次へと進んでしまいます。


受講してみての感想:
このコースは初心者向きらしく、その分前回のMachine Learningコースを受講した人にとっては物足りないかもしれません。コース5まである最初のコースなので基礎的内容が多く仕方ないのかもしれませんが、その後に控えているコース2〜5に期待したいところです。
個人的には、前回のMachine Learningコースがあまりにもよかったことから結構期待していたのですが、前回ほどすごいという印象ではありませんでした。教え方も前回のほうが丁寧だったような気がします。しかし、それは機械学習(従来の方法)とDeep Learning(最近の方法)という範疇の違いから、そうなるのかもしれません。初心者向けなので機械学習に通じる基本を一通りおさらいしつつ、すぐにDeep Learningに入っていくという感じなのかもしれません。たしかにどんどん複雑になっていくので、基本にばかり時間をさいていてもダメなのかもしれません。
ただし、実践力を身につけるという方向性は変わってはいないと思うので、すぐにも役立ちそうなスキルをどんどん教えてくれると思います。
日本語環境はまだそれほど整っていないので、英語に抵抗がある人にはきついかもしれません。しかし数式やソースコードが読めれば、英語が多少分からなくてもなんとかなるとは思います。

コースの修了書を受け取るためには本人確認書類をCourseraに送付しなければいけません。日本語で記載されている運転免許証の画像を送ったのですが大丈夫でした。一晩たってから、このコース修了書が送られてきました(実際は名前も記載されています)。無料期間でも修了書を発行してくれるようです。

0 件のコメント:

コメントを投稿

人気の投稿