04 Mar 2018, 10:41

Futurismoブログ6周年〜今までの振り返り

はじめに

このブログをはじめて6年が立ちました。6年というと、一つの区切りのような気がします。そこで、今回は6年間の興味の移り変わりと成長を過去記事とともに振り返ってみようと思います。では、どうぞ。

2012年3月 〜 2013年3月 ソフトウェア開発者としての幕開け

2012年3月10に、初めてブログを立ち上げました。

立ち上げたきっかけは、あまり覚えていないのだけれども、たぶんアフィリエイトで一発あててウハウハしたかった気がした(笑)。睡眠やファッションや食事に関するアフィリエイトブログが先に立ち上がって、Wordpressでゴニョゴニョしたことをまとめるためのブログだった気がする。このブログは、賢威というアフィリエイト界隈では有名なWordPressのテーマを使って作成している。賢威を買ってとりあえず立ち上げてみた、そんなところだろう。

しかし、この立ち上げが、技術ブログとして細く長く続いて今日に至るとは、誰も想像だにしなかった。この技術ブログを立ち上げることで、自分のエンジニアとしての意識が改革され、Outputをすることを意識して、継続的にInputをする習慣がついたのだった。

新卒で働きはじめてからブログをはじめるまで、家で技術的なことを学んだり、プログラミングをしなかった。家でそういうことをすることは、社畜だと思っていた。プライベートはなんか気晴らしをしてリフレッシュするのが良いと考えていた。

しかし、ブログをはじめてから、少しずつだけれどもプライベートでも技術的なことを学び始めた。時間ができると、プログラミングの勉強などをするようになった。これは0が1になった、とても大きな心の変化だ。きっかけがWordPressの保守という瑣末なことだったけれども、これがなかったら、自分の今までの変化はなかった。ちょっと大げさだが、このブログのはじまりが、自分のソフトウェア開発者のはじまりだった と言える。

この年に夢中になったこととして、iRemocon Hack というものがある。

今、Google Homeや Amazon Alexaなどのスマートスピーカーが売れているが、その当時、スマートホームというものがまだ流行っていないときに、自分のお家ハックをして楽しんでいた。

もうひとつ、夢中になったことがある。それは、TDDだ。当時、まだC言語しか知らなかったけれども、C言語でテスト駆動開発をする本に巡りあい、熱心に読んだ。

この記事、はてなブックマークではじめてバズッた記事だった。少しびっくりした。これをきっかけに、TDDを実務で試してみたいという気持ちが高まり、Google TestやGoogle MockというOSSを調べ始めた。OSSに触れたのもここが初めて。

2013年4月 〜 2014年3月 MOOCをはじめる

Jenkinsや、Eclipse、Cygwinといった、開発環境周りに興味を持ち始める。Eclipse関連の記事が多め。このころは、まだEmacsはあまり使っていなかった。githubを使い始めたのも、この年が初めて。

これをきっかけに、dotfilesをいじることにだんだん興味が移り始める。zshやら、cygwinやらscreeenなどのターミナル環境がカッコいいと思い始める。

このころ、vmwareに CentOSやUbuntuを入れて、Linuxをいじり始める。普段使いは、Windowsなのだったけれども、ターミナルへの興味を元に、コマンドラインの世界へと入っていく。年が明けると、Linux愛が深まり、ついにはWindowsと Linuxのデュアルブートに踏み切るまで至る。

また、TopCoderを知り、SRMに少しずつ参加を始める。アルゴリズムとデータ構造をC++で学び、C言語しかデキない人から、脱却をスべく、C++を学び始める。

MOOCとの出会いが、自分の勉強を加速させる。TopCoderがきっかけとなり、アルゴリズムを学ぶために、courseraの Algorismsと C++の講義を取る。

これらはとても難しかったのだけれども、このレベルのものを海外の学生は勉強していることを知り、焦りを覚える。そして、コンピュータ・サイエンスをMOOCを通じて学び直そうということを計画しはじめる。この決意がなければ、今日30以上のMOOCを受講することもなかっただろう。そして、この決断がなければ、険しい道を進むこともなく、貧弱プログラマになっていただろう。

この年は、C++, Java, Rubyを学んだ。もう、C言語しかできないひよっ子プログラマではない。

2014年4月 〜 2015年3月 Emacsが好きになる

ターミナル環境がすっかり気に入り、Emacsへの愛が高まる。Emacs好きならば誰もが思うように?、Emacsから出たくなくなり、何でもEmacsでやろうとし始める。Linuxへの愛も感極まり、ついにはLinuxマニアの大本命、Arch Linuxをインストールする(そして、これはアップデートでぶっ壊れてUbuntuに落ち着く)

また、この年もMOOCを貪欲に受講した。MOOCを通じて、新しいプログラミング言語を 2ヶ月に1つは挑戦するという、ちょっとおかしな状況。

仕事でJavaをやらせてもらい、デザインパターンを次々にマスターしはじめる。仕事と普段の勉強が相互に刺激しあい、新しいことをよく吸収することができた。

2015年4月 〜 2016年3月挫折、そして燃え尽き症候群

MOOCの勉強に陰りがみえはじめる。いろいろと講座を受けるのだが、難しくて途中でやめてしまうことが多いのだ。そして、趣味プログラミングもなかなかうまくハマることができない。悪い方向へ傾き始めると、どんどんうつが進行していった。自分のプログラマとしてのアイデンティティが揺るぎ始めた。

そして、12月、ついに倒れる。うつ病で休職。

ゲームオーバー、つらい。

唯一、この年でハマったことがあった。PythonによるFXシステムトレード。これによって、5万損したのだけれども、この取り組みは今考えてもとてもおもしろかったと思う。

2016年4月 〜 2017年3月 プログラミングから離れた一年

倒れたあとは、プログラミング恐怖症になってしまい、プログラミングから離れていた。なにをやっていたかというと、TOEICの勉強ばかりしていた。勉強時間を振り返ると、およそ1700時間、凄すぎ、暇すぎ。

2017年4月 〜 2018年3月 AIブームに便乗して復活

復職するためには、プログラミングともう一度向き合う必要があり、少しずつプログラミングの勉強をはじめた。世は、第4時機械学習ブーム到来。私も、世の中の流れに乗って、機械学習を勉強し始めた。有り余る時間を使って、MOOCでディープラーニングを勉強した。それでも時間があまり、強化学習をしたり、データサイエンスしたり、Kaggleや DeepAnalyticsをした。

8月、ようやく復職。なんとか、復活しました。復職後は、窓際な仕事でまったり過ごすかと思ったら、うつ病をぶり返しかねない激務な環境に放り込まれる。データサイエンティスト養成講座に通って、ほそぼそとデータサイエンスの勉強は続ける。仕事がはじまったら、忙しさに飲み込まれてほとんど勉強できてない。

おわりに

まとめると、成長のためのイベントは3つあったと思う。

  • ブログをはじめたこと
  • MOOCをはじめたこと
  • 休職したこと

プログをはじめたことで、勉強の習慣ができた。MOOCをはじめてコンピュータ・サイエンスをがむしゃらに勉強することで、遅れてスタートしたキャリアがなんとか人並みに追いつくことができた?そして、休職して復職したことで、方向性を変え、今までなんのために勉強してきたのかを振り返り、目的を持って勉強するようになった。

どうすれば成長できるかは、将来の事なんてわからないし、その時の運もあると思うけれども、恐れずにこれからも頑張っていきたい。努力することだけは忘れずにしたい。

27 Feb 2018, 13:56

プログラマになりたい

プログラミングの経験値をソースコードのステップ数で測るのは間違いかもしれないけれども、参考にはなる。仕事で、ほとんどプログラミングを仕事でさせてくれない気がしてきたので、本当にそうなのか、振り返ってみた。

職務履歴はgithubで管理している。

  • ETERNUS DX フォームウェア開発 201004-201401
    • 1000 C言語
    • 2000 C言語
  • 統合保守エンジン開発 201402-201407
    • 2000 Ruby
  • WAN 高速化開発 201408-201502
    • 4000 Java
  • AGL プロジェクト 研究開発 201503-201506
    • なし
  • ServerView Infrastructure Manager 201507-201512
    • なし
  • 現在
    • 1000 Java

合計で、1万ステップいくかいかないかかな。8年間で、これだ。泣けてくるな。

自分はプログラミングが好きで、プログラマになりたいのだけれども、これではプログラマ(笑)もいいところだ。プログラミングが得意でないからやらせてくれないのか、それともやらせてくれないからいつになっても得意にならないのか。

こんな環境に耐えて、いつかたくさんプログラミングをさせてくれることを夢見て待っている自分はなんて忍耐強いんだろう!社畜だなぁ。しかし、ここ数年だと、あまりにプログラミングをさせてくれないので、ノイローゼになって会社を休職してしまった。プログラマになりたい。

31 Dec 2017, 13:14

機械学習/ディープラーニング用にウルトラ高性能ゲーミングPCを購入

2017年も残すところわずかですが、年末最後に羽目を外してしまったというか、やらかしてしまったことを書きます。

ネットで機械学習用のPCを買ってしまいました。。。

33万で。ヽ(`▽´)/

うぇーい。

どうしてこうなったか

大晦日ですが暇していたので、ふとした弾みで最新式のパソコンが欲しくなった。

どうせ買うならば、超高性能のPCが欲しくなってきた。もちろん、GPUつき。

とはいえ、GPU式のウルトラ高性能のPCはどうすれば手に入るのかもわからない程の素人。調べてみると、ゲーム用PC、ゲーミングPCというジャンルがあり、

そのキーワードで検索してみると、よさそうなPCが出てきた。

ネットで情報を漁っているうちにその気持ちが止められなくなって、

買っちゃえ買っちゃえという気分になってきた。年末年始のキャンペーンもやってるし。

高性能PCを作るには自作パソコンだろうと思っていたが、調べるとBTOという方法があるらしい。

BTOとは、Build To Orderの略で、PCのスペックを指定して注文することが出来るサービス。

以下の雑誌が参考になった。

「組む」時間がなくても大丈夫 第8世代Core搭載 買いのBTOパソコン

雑誌を片手に様々な、BTOを提供しているサイトで見積もりを実施。

以下のサイトが参考になった。

結局どこも大差はないのだけれども、納期が即日だったドスパラに決定!

なにを買ったか

というわけで、ドスパラ最強ゲーミングPC ガレリア(GALLERIA) ZZを購入。

ちなみにちなみに、BTOと自作では、30000円くらい差があるとのこと。なんだか高すぎて金銭感覚がなくなってきたお。

スペックはカスタマイズしたのだが、以下を指定。

  • CPU インテル Core i7-8700K
  • メモリ 64GB DDR4 SDRAM
  • GPU NVIDIA GeForce GTX 1080Ti
  • SSD 500GB
  • OSなし(Ubuntu予定)

以下のサイトを参考にスペックは選定した。

CPUは、なにをするにも重宝をするもの。なので、できるだけ高価なものを購入。第8世代とのことで、6コア12スレッド。機械学習の前処理でパワーがあるCPUで処理したいと思い購入。

GPUは、安定のNVIDIAの最新版 GoForce GTXシリーズ。GPUについて、1070Tiと1080Tiで価格が3,40000円違ったので、とても迷った。GALLERIAの ZVというモデルが売れ筋No.1だそうだ。性能の比較が気になるところだが、これと明記した記事は見つからなかった。とても悩んだあげく、高いほうを選択。最高スペックが欲しいという動機があったからだ。

メモリについて、画像データを大量に扱いたいという思いがあり、Memoryネックで計算できないことがないよう、64GBを選択。

OSはLinuxのほうがいろいろなライブラリを扱う上で良いだろうとおもい、Windowsのオプションは捨てた。Ubuntuを入れるぞ。

買ってなにをするか?

一言でいうと、Kaggleです。

2018年の目標は、Kaggleをすること。Kaggleを通じて、機械学習やディープラーニング(Deep Learning)の知識を身につけ、データサイエンス力を磨いていくこと。

今年受けたデータサイエンティスト養成講座で、カグルマスターの人にあったのだが、その方がkaggleはマシンゲーだよと言っていた。高スペックなマシンを持っている人が勝利するとか。自分は、知識も腕前もないのだけれども、まずは形から入ろうとして、マシンを購入した。お金を払うとやらざるを得ないというあれです(ジョギングをすると決意するときに、はじめに効果なシューズやウェアを買うのと同じ心理)

ドスパラは2日で即配達するとのこと。どうしてもお正月に設定を終わらせたかったので、ドスパラを選んだ。即日出荷というのがすごい。というわけで、次回はマシンの設定を書きます。

28 Dec 2017, 04:56

2017年の振り返りと2018年の目標

毎年恒例ですが、一年の振り返りと来年の目標を立ててみようと思います。

2017年の振り返り

TOEIC ほぼ900達成

まずは、2017年の振り返りから。一年前はTOEICをとにかく勉強していた。

そして、年初の目標は、TOEIC 900達成を目指すこと。技術的成長は諦めていた。

ソフトウェア開発よりも、2017 年は TOEIC の勉強に力を入れる。

そして、頑張った結果、895点を3月に取得した。目標達成、めでたしめでたし。

機械学習にかけた一年

今年、もうひとつ頑張ったテーマがAI, 機械学習、Deep Learning。世の中AIブームなので、ミーハーなボクも、流れに乗って勉強を進めたのだった。

AIの勉強をしていて、会社の産業医から、AIで会社にどう貢献するのですか?AIの勉強をしていたら復職させない!といわれ、上司からもうちの部署はAIとは関係ないといわれ、それでもめげずに勉強していた。ところが、世の中はAIブームが来て、会社でもいろんな人がAIの勉強を始めている。ブームは確実にやってきている。

休職中で暇すぎたので、ありあまる時間を使って数々の講座を受講した。

その結果、JDLAの G検定に合格するという成果が出た。基礎的なAIの知識はついた。

仕事に復帰しました

うつ病で休職していたが、9月からようやく仕事に復職できた。復職したら、きっとはじめは窓際な仕事で暇だーといいながらひっそりと過ごすことを期待していたのだけれども、炎上プロジェクトに放りこまれていきなり激務。これはヒド(ry.

今は、ストレージ装置のファームウェア開発をしている。具体的には、システム制御チームでRAIDコントローラーの閉塞処理とファームウェアアップデート機能の開発をしている。2ヶ月で15日遅延で、4ヶ月で1ヶ月遅延で、毎週進捗報告で怒られる。早くAI業務に異動したい。そのためには、今の仕事で成果を出さないといけないのだけれども、また潰されそう。

2018年の目標

2018年は、AIの勉強を引き続き実施していく。具体的には、以下。

kaggleやる

2017は、データサイエンスに入門した。2018は、実力をつける。実力をつけるために、kaggleをやる。kaggleをやることで、機械学習やディープラーニングの知識をつけていく。またよいkernelを公開することで、EDA力、人に説明する力もつけていく。

JDLA E検定を受ける

ディープラーニングの勉強を継続していくために、JDLAの E検定の勉強をすることを一つの目標にしようと思う。資格を取ることで、自分の知識を証明したい。

婚活する

ソフトウェア開発の勉強よりももっとやらなければいけないことがあるのだった。休日は勉強もいいのだけれども、婚活に時間を割く。早く結婚したい。

10 Aug 2017, 16:18

会社に復職します

会社を休職していたのだけれども、今日ようやく復職の許可が降りた。

1年と8ヶ月間休職した。長かった。5回も復職判定面接をして、ようやく許可が降りた。こんなに長くなってしまったのは、いろいろな要因があるのだけれども、今までの経緯を振り返ってみたい。

以下、長文。TL;DR; 産業医との相性が悪かった。

休職に至るまでの経緯

前提として、もともと学生のころから鬱の症状があって、気分の浮き沈みを繰り返していた。精神科には、学生の頃からお世話になっていた。学生の頃は2年間通った。社会人になってからも3,4年前から精神科に通院していた。

気分は浮き沈みがあり、特に5月と11月(季節の変わり目)には周期的に鬱になっていた。具体的には、鬱になると布団からでられなくなる。布団から出ても出発の身支度に1,2時間かかり、学校や会社の遅刻を繰り返す。休日は一日中寝ていたりする。

ちょうど、11月の気分が落ち込みかけている時に、レガシーコードの調査を任された。どのくらいレガシーかというと、

  • 一つのメソッドが1000行以上
  • コピペコピペの嵐、同じようなクラスがいくつもある。作成者は継承という概念を知らない
  • 作成者不明なのでコードに疑問をもっても誰に相談すればいいのかわからない
  • 意味不明な変数名
  • 当然テストコードはない

気分は一気に落ちていって、朝起きれなくなった。遅刻を二週間連続で繰り返して休職。情けない、豆腐メンタル。今思うと、なぜそこで踏ん張れなかったのかと思う。頑張れよ自分。

休職してから3ヶ月で完治

仕事から離れると、すぐに回復した。仕事の質が鬱になった原因だったので、仕事から離れたらすぐに元気になった。

元気になって、やることもないので、TOEICの勉強をはじめた。一日10時間、2ヶ月で600時間勉強した。鬱の人がこんなに勉強できるだろうか?鬱は治ったと実感した。

主治医に、もう元気モリモリです、と相談したら、仕事にすぐに戻ると再発の可能性があるので、リワークをしてみてはどうかと言われ、3ヶ月間リワークに通うことになった。

第1回復職判定面接

リワークの終わり頃にいわゆる出合い系サイトにハマってしまい、生活リズムが乱れてしまった。お金がないので、実際に出会うまではいかないのだけれども、スマホの電池が切れるまでずっとサイトのタイムラインを眺め続けるというようなことを繰り返した。サイトをチェックすることに中毒になってしまい、夜遅くまで起きていた。

そういう状態で、会社の復職判定面接に望んだので、睡眠リズムが一定ではないということで復職不可となった。復職の条件は、

  • 生活リズムを一定にすること

これは、最もなことで、仕方がないと思った。

第2回復職判定面接

復職判定面接で復職不可となったので、落ちこんでまたひどく鬱になった。布団から出ることができず、一ヶ月ほとんど寝ていた。

このままではダメだと思い、青春18切符を購入して旅に出た。一週間かけて、神戸、大阪、京都を観光して帰ってきた。そしたら、なんだか元気になってきた。旅行によって、鬱屈した気分も晴れ、生活リズムも安定してきた。旅行によって、元気になったのだ。

また、落語にハマった。スカイプでたまたま知りあった人と新宿末広亭に行ったら、落語をやりたくなってきた。もともと大学生の時は、落語研究会に入っていた。なので、社会人の落語研究会に入会した。

生活はメキメキと安定してきた。昼間はTOEICの勉強をして、夜は落語の稽古をした。そういう生活を1,2ヶ月続け、元気になった。2度目の復職判定会議に望む。

2度目の判定会議で、産業医が1回目から変更になった。

この産業医との相性が悪く、ここから一年の間、復帰できなかったと言っても良い。

第2回目の復職判定会議は、結論としては、復職できなかった。その理由は、生活リズムではなくて、お金の使い方が粗いからだった。

どういうことかというと、月に100万つかったと言ったら、この人は精神異常者だとみなされて、復職不可となった。

どうして、100万をつかってしまったか、その内訳を説明したい。内訳は、以下の通り。

  • 学生特例で免除されていた年金の追納金 65万
  • 結婚相談所入会金 10万
  • 社会保険費 6万
  • 生活費 19万

落語研究会にはいり、お年寄りとふれあう機会が増えた。老人ホームやデイサービスの施設で落語をすることもあった。そんな折に、年金の追納金のお知らせが来たので、お年寄りのためにも、払えるものは払ってしまおうと、65万を払った。また、結婚相談所に30歳までに入会すると、入会金が6万円安くなるという割引を見つけたので、10万払った。出会い系サイトにハマるよりも、結婚相談所に登録したほうがよっぽど健全だ。次で復職できると思い込んでいたので、復職が決まったらすぐに婚活をはじめようと思っていた。

というわけで、復職の条件は

  • お金の収支を記録して、3ヶ月間分の記録を提出すること。

第3回復職判定面接

また、産業医さんには、自分を復職させようとしない、もう一つの理由があった。曰く、自分は、産業医さんからみて、発達障害者だと思われた。そのため、大学病院に行って心理検査と知能テストを受けることになった。

心理検査の結果、まったく異常なし。発達障害ではなかった。

IQテストは、89だった。IQは平均が100なので、自分はどちらかというと頭が悪いということがわかった。これには少し落ち込んだけれども、そのころGRITという言葉をしった。IQがたとえ低くても粘り強く努力すれば、実力を発揮できるというもの。これを励みに、TOEICの勉強を頑張った。

お金の収支について、無駄使いはしないものの、自分の自己啓発のための投資にお金を少し使いすぎた。具体的には、TOEICの本をたくさん買ったり、TOEICセミナーに参加したりした。このころになると、休職してからのTOEIC学習時間が1500時間に達した。そして、目標の860スコアを上回り、895スコアを獲得した。GRITが証明された瞬間である。IQが低くてバカでも、粘り強く努力すればTOEIC900も夢じゃないのだ。

そして迎えた第3回復職判定面接。結果は復職不可。理由は、お金の支出が収入よりも、多いからと、TOEICの勉強をして、仕事に向けての勉強をしていないから。

そして、復職の条件は、

  • お金の支出を収入よりも抑えること
  • Javaの資格を取ること

となった。

第4回復職判定面接

趣味はすべて禁止、飲み会参加も禁止、衣類の購入も禁止、とにかく無駄遣いは禁止になった。落語研究会もお金がそこそこかかるのと、時間が思っていた以上にかかるので、やめてしまった。趣味なし、楽しいことなし、人生はなんて虚しいものか。なんのために生きているのかわからなくなってきた。気分の落ち込みは、明らかに産業医さんの価値観に対する理不尽さからくるものだった。

TOEICで895スコアを取得したので、もう英語の勉強はやめようと思った。代わりに、流行りの機械学習の勉強をはじめた。これが面白く、また世間でも盛り上がっていて話題に尽きないので、のめり込んでしまった。

Javaの資格、Java SE Silverの勉強を始めたのだが、一日30分時間を取ることにした。これにはわけがあって、受験費が高額なので休職期間中は受験しないと決めていたのと、復職が決まったら、通勤訓練というものをやらされて、会社の図書館に閉じ込められるので、その時間に集中して勉強しようと思っていた。しかし、これが産業医さんの思いとすれ違っていて、また怒りを買うことになった。

4回目の判定会議、1日12時間勉強しているけれども、Javaの資格試験の勉強は30分しかしていないと報告したら、激怒された。

産業医さんは、自分のJavaのスキルが足りないから難しくて鬱になったと思い込んでいた。なので、自分は、そうではない、自分のJavaのスキルが足りないのではなくて、与えられたコードが汚かったので、鬱になったと弁解した。そもそも、うちの会社は組込みソフトの会社なので、Javaは正直あまりつかわれていないので、この資格は重要ではないといった。そしたら、また激怒された。汚いという表現を面談の場で使うべきではない、そういう表現を使うあなたは幼稚だ、さらに鬱になった原因について会社を責めていると言われた。鬱になった原因は全部自分にあると、自虐的におもわなければいけないのか?

ということで、今回も復職は不可。今回は、細かく復職の条件を指定された。

  • Java SE Silver の試験に合格すること
  • 反省レポートを書いて提出すること
  • お金の収支について、3万円の黒字を出すこと
  • 生活記録表を記録して、何時に何をしていたのか詳しく報告すること
  • 食べたものを記録して提出すること。レコーディング・ダイエットすること。

第5回復職判定面接

Java SE Silverの試験は楽勝だった。3日で取得した。しかし、その受験料が3万近くかかり、それに加えて3万の黒字をださなければいけないので、お金を本当に切り詰めて生活することになった。そもそも、なぜ3万の黒字をださなければいけないのかも理解していない。

ここで、運悪く睡眠リズムが崩れてしまう。これは、主治医に夜中に中途覚醒してしまうと訴えたところ、クエチアピンという睡眠薬を2錠処方された。これを飲んだら、毎日12時間眠るようになった。はじめは薬のせいではないだろうと思って、自分の意思が弱いのだろうと思い込んでいたが、医者に相談したら、薬のせいだとわかった。睡眠リズムが乱れたので、次回の復職判定会議も延期された。

休職満了期間が残り3ヶ月になってきて、このままだとクビになってしまう。

自分も焦っていたが、両親もとても焦っていた。一人暮らしをしていたのだが、母親が自分のマンションから3分のところにあるマンスリーマンションに引っ越してきた。これは、とてもありがたい。朝は起こしてくれるし、お弁当も作ってくれるし、なにより夕食に手料理が食べられる。お金も節約できる。母親の愛情を感じ、何としてでも復帰しなければいけないと思った。

そして、迎えた第5回目の復職判定会議。万が一のこともあるので、両親の同席が求められた。社会人の面談に両親が出て行くなんて恥ずかしいと思ったが、父親が一緒に参加することになった。

復職の条件は完璧にクリアしていた。文句のつけようがない。父親がいるせいか、普段とは空気が違い、受け入れようという感じを強く受けた。事前に提出した反省レポートについていくつか質問を受けたあと、復職許可が決定した。

おわりに

社会人になってから、メンタルを病んで休職することは、学生時代から想定していた。なので、就職活動では福利厚生が充実しているところを選んで受けた。幸か不幸か、その恩恵をはや数年目にしてうけることになった。傷病手当金(休職中の収入源)は国が定める決まりで、お金をもらえる権利はあるのだが、もうしわけない、早く会社に復帰したいといつも思っていた。カウンセリングも無料で2週間に一回受けることができた。これはとても支えになった。これらの福利厚生制度には、本当に感謝している。

ただ、復職するにあたって、こんなに大変だとは想定していなかった。自分は2ヶ月で復職できるものだと思っていたら、2年近く復職させてもらえなかった。

自分は運が悪かったのだろうか、それともこれが普通の対応なのだろうか?考えるとまた鬱になるので、深くは考えないことにして、とりあえず将来のことを考えたい。

27 Jul 2017, 15:30

Deep Learning に挑んだ半年間、そして今後の勉強計画について

はじめに

半年くらい前、まだ機械学習についてなにも知らなかったときに、書いた記事が炎上してとても恥ずかしい思いをした(記事は非公開にしました)。

この記事はただの日記です。

この半年で取り組んだこと

この半年で、機械学習の勉強はせずに、ディープラーニングと強化学習の勉強をした。

3月〜7月

上記記事を書いてモチベーションを高め、さあ機械学習のための数学をやろうと意気込んでいたのだけれども、すぐに気が変わって、機械学習の王道を進まずにディープラーニングに突っ込んでいった。なぜなら、Udacity で Deep Learning Nanodegree Foundationという4ヶ月の講座を受講し始めたからだ。

この講座に 3月から7月までの4ヶ月間取り組むことによって、

  • Deep Learningという学問分野の概要を学んだ(NN, CNN, RNN, GAN)
  • TensorFlowで実装できるようになった。

このDLND、超初心者向けな講座で、手取り足取り Deep Learningを教えてくれた。なので、数学が必要なかった(笑) あれ、おかしいな、ディープラーニングって、もしかして数学あんまり必要ない??統計とかほとんど出てこないよ。

4月〜5月

また、同時進行で Fast.aiのPractical Deep Learning for Coderという講座も受講したのだが、これがまたすごくいい講座。

この講座の理念は、Deep Learningの敷居を下げて、誰もがDeep Learningを簡単に使えるようにすること。もちろん、ここでも難しい数学は抜き!そして、ここで Keras という Deep Learningをおそろしく簡単にするライブラリを知ってしまう。これをしったら、numpyの実装はおろか、tensorflowですら面倒に感じてしまう。この講座によって、

  • Kerasでバリバリコーディングできるようになった。
  • Kaggler としてデビューし、画像系コンペなら、いい結果を出せるようになった。

というわけで、この2つの講座によって、この半年でバリバリのディープラーニングコーダーになったのだった。

6月〜7月

しかし転機はまたやってきた(コロコロ変わる…)。会社にAIの勉強をしてます!といったら、「うちにはAIの仕事はまったくないよ!」といわれ、さらには「そんな役に立たない勉強よりも、Javaの資格とらないとクビにするよ」という脅しまでされたのだった。

というわけで、AIとの付き合い方について、考えを見直さざるを得なくなってしまった。今の会社は、組込みソフトの受託開発がメインだ。組込みソフトと AIがどう関係するのだ???うーん、と悩んだところ、2つの答えにたどりついだ。

  • 強化学習
  • ロボティクス

というわけで、強化学習の勉強とLEGO Mindstormsを使ったロボット制御の勉強をはじめた。

これにより、

  • OpenAI Gymデビューし、強化学習問題が解けるようになった。
  • 強化学習やロボット制御の理論を LEGO Mindstormsで試すことができた。

これから取り組むこと

数学の苦手意識を克服

この半年間で、理論よりは実践重視でバリバリコーディングしてきたのだけれども、ディープラーニングが趣味レベルで中途半端にできるだけでは、仕事には生かせないし、なにもできない!!

そもそも、である。機械学習に興味を持った理由は、数学を使って現実問題を解決するところがかっこいいと思った憧れからである。そのために、大学では数学を専攻したはずだった。

大学を卒業して10年くらい経った。大学は情報系の専攻で、卒業研究は、情報理論 を学んだのだが(学部卒)、10年も経って数学から離れていたらすっかり忘れてしまった。なので、大学の数学を一から学び直したい。

また、やっぱり数学が壁で挫折したことが、この半年間でたくさんあった。

数学で撃沈した思いでをつらつらと並べたい。

  • 誤差逆伝播法が理解できず挫折。(これはデーィプラーニングがわかる数学という本によってようやく理解できた)
  • Udacity: Artificial Intelligence for Roboticsや確率ロボティクスでベイズ統計や確率が理解できず挫折。
  • Deep Learning Nanodegreeで学んだことの先にいこうとすると、論文を読んでいかないといけない。しかし、論文を開くと数式の羅列に意味が分からずフリーズ。
  • 深層学習(イルカ本)挫折。
  • Deep Learning Javaプログラミング 深層学習の理論と実装、挫折。生成モデル??
  • Siraj Ravalの The Math of Intelligence 挫折。

というわけで、数学、やります!

プログラミングのための30代からのやり直し数学である。

勉強の方針

大学生のころは、理学系だったので、数学の勉強は定理と証明の繰り返しだった。ソフトウェア開発者になると、数学に対する姿勢は工学系よりになる。

  • 理論よりも応用を考える
  • この定理がどう役に立つかを考える
  • 抽象性よりも、具体的イメージを
  • 証明の厳密性はほどほどに(理解できることに越したことはないが)

大学1,2年生の数学の復習

機械学習で必要な数学とはなにか、それは情報系の大学生が1,2年生で習う数学で十分という意見が多い。私は、情報系の専攻だったのだけれども、そこで習った数学は以下の4つ。

  • 線形代数
  • 解析学
  • 統計学
  • 離散数学

離散数学は、TopCoderなどのアルゴリズムコンテストにとても役に立ちそうな分野だ。機械学習との関係は、よくわからなかった。集合や代数的な知識は、線形代数を勉強することで、身につけられそう。離散数学の勉強は保留で。

基礎固めのための参考書はマセマで

やり直し数学ということで、最近大学生の間で評判の高いマセマシリーズで基礎固めをすることにした。高校数学から大学数学への考え方の移行がスムーズにいける、定理の証明に手を抜いていないのでガチ、コメントが多くページを遡って読みなおす必要がなく読みやすい、などの印象を受けた。

基礎ということで、以下の3つをすすめることにした。これで、まずは、大学の初等数学を復習する。

  • 線形代数
  • 微分積分
  • 統計学

基礎の補強と応用へ

マセマは数学をとても簡単に(でも手を抜かずに)書かれているけれども、知識を厚くし、また別の角度から知識を補強したい。そこで選んだのが「プログラミングのための〜」のシリーズ。

解析系がこのシリーズにないので、代わりに最適化数学をメニューに組み込む。また、機械学習ではベイズ統計が使われるので、メニューに組み込む。

  • プログラミングのための線形代数
  • プログラミングのための確率統計
  • これなら分かる最適化数学
  • Pythonで体験するベイズ推論 PyMCによるMCMC入門

数学を復習したら機械学習へ

数学力を強化したら、もともとの目標である機械学習の勉強に着手したい。まずは、はじパタから。

理論よりも実践を重視したいので、なるべくPythonとJupyter Notebookでプログラミングできる教材を使って勉強していきたい。

ココらへんまで来たら、Kaggleにもガンガン挑戦していきたい。Deep Learningの手法のみに頼らずに、いろんな手法から最適な方法を取捨選択できるようになりたい。

その他、情報理論を勉強したい。この本は、情報理論的な立場から機械学習を捉えているらしいので、気になっている。

読みたい本

目指すは、機械学習の登竜門、パターン認識と機械学習(PRML)

また、確率ロボティクスも挫折したので、数学力をつけて再挑戦したい。

その他の勉強

Deep Learning

今後はDeep Learningの勉強は抑えて他の勉強にリソースを割り当てる。

ただし、fast.aiの Deep Learning のオンライン講座 Cutting Edge Deep Learning for Coders は進める。この講座はほんとうによい講座なので、引き続き受講する。

Deep Learning Book の 本が翻訳されたら、勉強を再開しよう。

ロボティクスと強化学習

仕事で AI を活用するためには、この2つの分野の学習が必要なので、ここに力点をいれていく。

具体的には、Udacity Robotics Nanodegreeを半年間に渡って受講します。おそらく、これはかなりの負荷になるので、他のことをやる時間がとれなくなるかもしれない。

また、強化学習は 次期 MLPシリーズで発売が予定されているので、その本が発売されたら勉強を再開したい。

まとめ: 今年やること

まとめると、今年の残りの予定は以下の3つだ。

  • 機械学習のための数学力強化
  • Udacity Robotics Nanodegree
  • fast.ai Cutting Edge Deep Learning for Coders

02 May 2017, 10:19

TOEICほぼ900点達成

2017年4月の公開テストで895(L475/R420)をとりました。

ほぼ、900です。自分の中ではもう十分TOEIC満足です。

どうやって、TOEIC900達成したか?それは・・・ひたすらバカみたいに努力したから。

1700時間勉強したのだ。

このFuturismoのブログ、2016年はほとんど記事を更新していない。なにをしていたかというと、ひたすらTOEICを勉強していた。

正直、エンジニアやめようかと思ってた。

このサイトに、勉強時間の目安が書いてある。400点の人でも1500時間で900可能らしい。

自分がTOEICの勉強をはじめたのが、2015年11月でその時点で805点。

たった、90点あげるために1700時間も費やした。自分はバカなんじゃないかと思う。そうとう効率が悪い。

いや、実際バカなのだった。IQが89しかない(平均は100)。心理テストの結果、言語能力が人並みよりも特に低いのだ。

それでも、能力は努力で克服できることを証明したくて、バカみたいに頑張り、諦めなかった。GRITを信じた。

その結果だ。

 

TOEIC900とっても、英語は喋れないし、相変わらずMOOCのレクチャーは分からないし、英文読むのはしんどい。

まだまだ英語全然できない。

とりあえず、もうTOEICはいいです。別のことに時間を使います。

20 Dec 2016, 04:33

2016 年のまとめと2017年の目標

今年も終わりなので、2015 年の振り返りと 2016 年の目標を立てる.

2016 年の振り返り

2016 年の目標は以下の通り。

最悪の年だった。うつ病にかかり、2015/12/15 より休職。 未だ休職中だ。復職のめどがいつになってもたたない。

記事数を見てもらえば分かる。ほとんど Output なし。成果なし。

ということで、振り返ることありませーん。

2017 年の目標

ソフトウェア開発よりも、2017 年は TOEIC の勉強に力を入れる。

TOEIC 用のブログも立ち上げた。

ソフトウェアに関して強いてあげれば、おもしろそうな MOOC の講座や書籍があれば 取り組んでみる程度に留める。

とにかく、今年は TOEIC に注力して、900 score を取得したい。

なぜ TOEIC900 なのか?

これは、まだ自分でも踏ん切りがついていない。860 点でもいいんじゃないかと思う。 TOEIC900 とれても、英語ができるわけではないし、転職でもあまり重視されない。 − TOEIC900 点は全くたいしたことがない件について

でも、あえて書くと、以下かな。

  • TOEIC 楽しいから。ハマっている。点数があがっていくのがゲーム感覚で楽しい。現実はこの半年間さがってるけどね。
  • みんなから尊敬される。すごーいといわれたい。
  • 英語力をあげることに注力したい。これからのキャリアを考えると英語は必須。だらだらと今までのように勉強していても、大して変化がない。ブレイクスルーが欲しい。
  • 頑張る目標が欲しい。目標があると、人生にはりがうまれ、生き生きとした生活がおくれる。

ということで、2017 年は、このブログもあまり更新しません。TOEIC ファーストです。

20 Dec 2016, 04:02

twitterで勉強垢をつくりました

Studyplus SNS中毒のtsu-neraです。流行りの??勉強垢を作って見ました。

関連記事

こうして、記事を拾い読みしてみると、批判的な意見が多い。

わざわざツイートする必要あるか?

Twitterしている暇があれば勉強しろよ。

なぜつくったか?

  • Studyplusアカウントの宣伝用・・・twitterで自分のログを公開することで、プログラミングの友達申請がくるかもしれない。とくに、プログラミングはニッチな本を読んでいると、twitterで自分も読んでるんだよという発見してもらいやすい。MOOCも同様。
  • 自己マーケティング・・・自分という存在を世間にアピールするため。ブログ宣伝用。SEO対策。
  • 実績を自慢したい ・・・自分の勉強ログを公開することで、自分はこんなに頑張ってるんだよというのを自慢したい。そのことによって、モチベーションが上がる。
  • 自己満足のツイートをしたい・・・たとえば、お腹空いた〜みたいな、どうでもいい内容や、ネガティブな内容を発言したい。発言することで、自己発散できる。

終わりに

まだ、はじめたばかりなので、長続きしないかもしれないけれども、どうなることやら。

17 Dec 2016, 16:17

TwitterBrainはつかえない。スパム扱いされる。

TwitterBrainの評判や評判ついて、いろんなサイトで褒めたたえられているが、たぶんアフィリエイト目的だろう。批判をしている記事がないので、書いておく。

TwitterBrainはつかえない

TwitterBrain(ツイッターブレイン)は使えない。

具体的には、リンクを含むツイートをすると、検索結果に反映されない。

行なった設定は、フォーム推奨されているパラメータ(20人/1日)での、自動フォロー、アンフォロー機能。

この件について、2回、ツイッターのサポートセンターに問い合わせフォームから問い合わせを行なった。

2回とも、スパム扱いにされて問題がクローズされた。改善なし。以下は、ツイッターサポートセンターからの返信。

Hello,

You tried to update a case that has been closed. Please submit a new case at http://support.twitter.com/forms. You can also visit our help center at http://support.twitter.com for self-help solutions to common problems.

困り果てた。現状のTwitterBrain では、Twitter のスパム判定アルゴリズムで、アカウントがスパムと判定されるようだ。

もう、自動フォロー、アンフォローはどのツールを使ってもできない気がする。もし、可能なツールがあれば、教えて欲しい。

もちろん、TwitterBrain のbot 機能を使いたかったり、検索結果に引っかからなくても、フォロワー数を獲得したいという用途ならつかえるかもしれない。

ただし、フォロワー数は期待しているほど伸びないことも書いておこう。2アカウント運用したが、どちらもフォロワー数は50前後だ。この程度なのだ。これも、どのサイトにも書かれていない、運用実績の事実だ。

自分のようにサイト誘導が目的の人で、これからTwitterBrainの購入を検討しているひとは、買わない方がいい。

以上のように、使えないツールだからだ。