PyQで寄り道
おつかれさまです。
ちょっとディープラーニングのネタからは離れて、少しPythonについての体験記をまとめたいと思います。…すいません、GPUの次の手が思いつかず、とりあえず道草くってるような感じです。
Python歴
Pythonに関して、私は独学マンです。ただ、1年ほど前に趣味的な感じで、なんちゃらスクール的なものに半年ほど通い、そこでRubyを使った簡単なWebアプリを作れるぐらいのスキルは身につけました。なので、プログラミング自体にアレルギーとかあったわけではありません。その後、アメリカに移住することが決まったので、スクールにはサイナラしてこっちでPythonをはじめました。Rubyで慣れていたとは言え、ほぼ素人がPythonの環境構築で心が折れなかったのはデカイと思っています(笑)。
独学勢あるあるに、「自分の欲しい情報だけを勉強したせいで知識が変調気味」ってのは上位の方にランクインしていると思います。私にもそのあるあるはしっかり上位にランクインしています。ちなみに1位は「できるマンとの接し方が分からない」ですかね(白目
なので、この知識の偏りを平らにしたいな〜ってのはずっと考えていました。めっちゃ時間かけて書き上げた20行ぐらいの渾身のアルゴリズムが、Pythonのデフォ機能でそれ1行で書ける乙wwwなんてこともよくあったので、けっこうロスタイムが深刻でした。
ということで、ディープラーニングの進捗が煮詰まってしまったこのタイミングで、ちょっと基礎勉強してみようかと思い、PyQというクエスト型学習サービスにトライしてみました。(結局、長続きしなかったんですが…)
PyQとはどんなもんか
Pythonについていろいろ調べていると、ちょくちょくこのPyQという名前を見る機会があったので気にはなっていました。ざっくりまとめると、
という感じです。料金はスタンダードプランとやらで、1ヶ月あたりだいたい3000円です、上のプランだとだいたい8000円で個別に質問対応してくれるのだとか。私にはこれが高いのか安いのかよく分かりませんが、何ごともやってみないと分からんので、こんなもんハシタ金じゃあ!(もちろんスタンダード:3000円)と言ってイケイケドンドンで申し込みました。
PyQの感想
確かに、「ブラウザ上のみで学習でき、ややこしい環境構築が不要」ってのはその通りで、プランの決済が完了した瞬間からなんの準備もいらずにコードが書き始められました。これは本当に初心者の方にはすばらしく優しい仕様になっていると思います。初心者にとって環境構築がどれほど苦痛を伴う作業か…
逆に、個人的には既に自分のPCにPython環境がある手前、そんなに恩恵ないなぁ、と思ってしまったのも事実です。。あと、ブラウザのエディターは自分専用にカスタマイズされたものではないので、キーボードの手癖がついていると思った通りにインテンドとかされずに、逆にイラッとしてしまいます。
学習コンテンツ自体はよくできていると思います。カテゴリごとに例題がいくつかあって(同じコードだけど数字が違う、みたいな)、繰り返しトライすることで確実に身につくだろうし、体系的に知識が入ってきます。ほんで類題の数がめっちゃ多い。PyQを始めると、おすすめコースみたいなのがいくつか出てきます。もちろん私は「Python初心者コース」をチョイスしました。初心者コースなのでクエスト自体はそこそこ書けましたが、やっぱり2〜3割ぐらいは書けない、もしくはそんな書き方あったのか(驚愕)となり、知識変調が浮き彫りにされました。私の偏った知識がならされていくのが分かるので、よかったと思います。
PyQの苦手なところ
自分にとってはひたすら「写経」ってのがやっぱり飽きてきます。Pythonを始めたときは、割と強烈に「やりたいこと(ディープラーニング)」が具体的だったので、自分で情報を集めてきて構築して動かしてみる、という一連の流れにかなりエキサイトしていました。そのため、PyQのようにあらかじめ答え(書くべきコード)が決まっていると、レールの上を走るだけみたいで、どうしても窮屈に感じてしまいます。
そういう事もあって、やっぱ自分にはこのスタイルは向かないな、と判断し3週間で解約してしまいました、3週間坊主ってやつですね。ちなみに、次の決済までに残った日数分、日割りして料金が返金されました、これはすごいお客様親切。
まとめ
今回、PyQはあまり長続きしませんでしたが、これはレールを踏み外した私がなじめなかっただけで、Pythonの書き方をゼロから体系的にしっかり学びたいという人にとっては神のような存在です。これからPythonを学習したいという方には役に立つと思います。
「ほんで寄り道は分かったからお前次どうすんの?」ってところは今も考え中です。ディープラーニングにGPUを使うにはまずハードを調達しないといけない、GPUを使うための専用のコード(CUDA?)を覚えないといけない、というところまで分かりました。最悪、ハードはお金とAmazonを駆使すればなんとかなるかもしれませんが、知識の部分はけっこうハードルが高い…、そしてディープラーニングの内容からは少し離れるのでモチベーションも下がりそう…。
ってことで、ディープラーニングのアルゴリズムをイチから全部構築する、ってのはちょっと横に置いておいて、フレームワークを使ってみようかなと思っています。特に伝搬部分の計算がブラックボックス化してしまうかもしれませんが、学習を進めるために背は腹に変えられませぬ。今は私の貧相なコーディングが原因で計算時間がかかっている可能性もあるので、フレームワークを使うことで何処ぞのエラい人が作ったプログラムだとより最適化されてなんとかなる範囲に収まるのでは?と淡い期待を持っています。フレームワークを使いこなしてから、また内部のアルゴリズムに目を向けると今よりも速いスピードで理解できる部分が多いかもしれません。
とりあえず以前インストールしたTensorflowを使ってみようかなと思います。これも新しく学習する内容なので時間がかかるかもしれませんが、分かったところ繋ぎながらまた記事にしていきたいと思います。
フトシ