技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

【初心者向け】Kaggleで機械学習を勉強しよう!

liberal-arts-for-tech.connpass.com

ここんい参加したきた。
半分近くが学生さんというすごい状況。
モノが学術方面なので、その分学生のほうが寄り付きやすいのかも知れない。

内容

といっても基本は交流の場+もくもく会といった状態でした。
Kaggle 初心者の為の入門方法もやってるので、どのタイミングで参加しても初学者に優しそうだ。

その意味で、 勉強会初参加とか、機械学習自体が初学者でも問題なく入っていける というのはとても強みだと思う。

次回はすでに他の勉強会が挟まってるので参加は多分無理なのだけど…

Kaggle 入門

素敵なことに、スライドがあって、Kaggle のアカウント作成〜チャレンジのエントリー〜データのダウンロード〜回答のアップロードまでの手順を順に説明してくれるというとても親切なものだった。
(その横でもくもくしている人もいるという)

ちなみに入門車は Titanic (Kaggle チュートリアルチャレンジ)だった。

真面目な話、アルゴリズム自体は色々弄ってるので、根拠のない自信で「やれるんじゃね?」と思ってたのが甘かった。

チュートリアルレベルでもデータの整形、補完、不要なデータの除去など、前処理を行うらしい。
当然ながら、アルゴリズム実装だけやってると、そんなことはしてない訳で、しょっぱなからつまづいた。

ここでこの勉強会が親切だなと思った点は、前処理〜モデル生成〜性能評価の一連の流れの説明や、Kernel(他の人が書いた解説)なんかの読み方まで説明してくれる点だ。
時間が短かったので、精度を高めるなんて話までは進まなかったのは残念だが、凄まじい刺激である。

個人的にやらんとなーと思ったこと

具体的に(予め断っておくが全て Python3.6+)

  • pandas
    データ読み込み、加工、保存のライブラリ。
  • scikit-learn
    機械学習ライブラリ

なんてのを弄ってた。
そして悟った…numpy 一つでスクラッチ実装も無駄ではないが、効率考えたらライブラリ使えと。

仕事でやってないで趣味でやってるからスクラッチなんてマネができる訳で(汗
そりゃコンペやるくらいなら、ライブラリでもなんでも投入してやれよなって話だ。

刺激

機械学習を仕事にしてる人の話は過去何回か聞いた。
アルゴリズム自体は研究分野を除けばだいたい一般化していて、結局彼らのお仕事は「前処理係である」とはよく聞く話だ。

で、今回勉強会へ行って驚いたのが、参加した大学(学部)学生がすでにそう言うのが必要と自分で気づいてる点。
コレは乗るしかないこのウェーブにッツツ!!!

reading-circle-beginners.connpass.com

と言うことで申し込んだ!
学生たちの話を聞くのも非常に面白かった。

曰く

  • TypeScript どうやって入門しましょう?
    一気に入門しないと書籍は陳腐化するからおすすめは公式
  • wasm どうなんでしょう?

みたいな話。
WASM すらっとは出てこないけど、改めて考えると

言語も広まってる。昔 asmjs もあったけど…
結構いろんな言語が対応してきてるけど言語で差が激しい。

多分セキュリティ的なものもあるから、そこまで自由度は増えないと予測。
コアロジック見たいのは書けても、ソケットとかDOM操作とかまではサポートされないと思われる。

ただ、TypeScript/C# 両方が Microsoft なので、TypeScript 中でシームレスに C# が書ける様になる可能性がある。
そうでなくとも、TypeScript 自体は GitHub - AssemblyScript/assemblyscript: A TypeScript to WebAssembly compiler 🚀 経由で WebAssembly 化できるので、その意味でかなり強そう。

やっぱ MS はここ5年くらいでかなり変わった。

予測

2019 年に入って、少なくともビジネスシーンにおいては、AI でできることできない事が周知されてきた感がある(少なくとも英語圏はそう)。
日本でもそういうブログが増えてきてるので、よほど IT/ICT に疎い企業でなければ少なくともデカイ企業は理解している。

そこへきて、AI を実際に適用しようと言う流れは加速するはず。
その意味では AI の市場価値は高そうだ。

もっと言うと、IoT 機器との組み合わせができれば最高の情報源になると考えられる。
ウェアラブルな IoT 機器が出回って、連携が取れれば、新しい気づきと商売に繋がる可能性が非常に高い。
コレはハード屋、システム屋、解析屋、AI屋が共同しなければ実現しにくいものがあるので、そうした人材を囲うことに成功した企業は一気に伸びる可能性がありそう。

また、コレに伴い情報量が圧倒的に増える。
必然的にオンプレで賄えるインフラ量を超えてくる可能性が高く、実現アーキテクチャとして FaaS に傾きそう。
要するにストレージ、運用を全てクラウドに預けてしまう。
また、FaaS (Amazon AES Lambda など)であれば、スケールだなんだと悩む必要もなくなる為、おそらくもっともリーズナブルになると思われる。

また、インフラコストを抑えるという手に合わせ、IoT 機器のスペック強化の風潮を考えればエッジコンピューティング(端末単位である程度の処理をする)という手も考えられる。
コレは機械学習とかそういったものではなく、その前段階、データの加工や補完、一時的なキャッシュ、場合によっては学習直前の変化量データまでをクライアントに負わせることで、インフラ側のコスト削減を考える事ができるかもしれない。

コレが技術的な 2019 年トレンド予想。
細かい技術は言及できない。だって破壊的な何かが出て、突然出て一気に広まる可能性が ICT には存在するから…。

なお、AI 界隈の予想でいえば、QLerning のような、自己学習的な学習アルゴリズムが今後増えそうな気がする。
何故かといえば、前処理屋さんの人数が圧倒的に足りないから。
なら目標だけ与えて、それに向かって勝手に学習してくれる方が楽だ。むしろこの人手不足問題はかなり顕著だし、そろそろコレに対する答えとしてコレに類似した何かが出てくる気がする。