こんにちはー!REMIです。
関東は梅雨入りしましたね!梅雨が明けると暑い暑い夏が…
私は暑いのが大嫌いなので(笑)今からそわそわしています( ・_・)
本日は、毎月実施している機械学習勉強会についてご紹介したいと思います!
この勉強会は機械学習に関する論文の輪読会や、情報をシェアしよう!という事ではじまりました。
5月の勉強会内容は下記の通りです。
- CoreML
- モンテカルロ木探索を利用した文生成
- NativeScript + Angular
- XGBoostについて
1.CoreML
Appleが出しているiOS用の機械学習ライブラリのCoreMLに関する情報共有がありました。
Appleが公開している学習済みモデルをサイトからダウンロードして、アプリに組み込めます。
TensorFlowやKerasで書いた、独自のモデルについても簡単にコンバートできるようです!
似たようなライブラリで、Googleから「ML Kit」が出ており、
こちらはAndroidとiOS両方に対応しているそうです。
推論処理をクライアント側で実施するメリット・デメリットは下記のとおりです。
【メリット】
– 個人情報を外部に出さない
– 通信量に依存しない
– サーバコストを考慮する必要がない
【デメリット】
– モデルのサイズが大きいと辛い
– オンライン学習が困難
作るアプリーションの特徴を見極めて、どのような設計にするか考えたいですね!
Core ML公式ドキュメント
https://developer.apple.com/documentation/coreml
ML Kit公式ドキュメント
2.モンテカルロ木探索を利用した文生成
モンテカルロ木探索とよばれる、ゲーム木を徐々に展開していく探索法を使い、文を生成する論文の紹介がありました。
ディープラーニングを利用したLSTMなどの文章生成は、文法的に不正確で、
壊滅的な文になってしまいやすいという問題があります。
それに比べて、この論文で紹介されている方法では、
文法規則をツリー状に形成・探索し、与えられた単語(SVOに相当する単語)を当てはめていくので
壊滅的な文になってしまうことを防ぐことができます。
また、いろんなパターンのツリーが作成されるため、複数の言い回し文が生成されます。
なんでもかんでも、ディープラーニング!!といったスタンスではなく、
その問題・課題・データ構造に合った手法を取り入れて、アプリケーションを作っていきたいですね!
3.NativeScript + Angular
機械学習ではないですが、最近のフロント技術 NativeScript + Angular に関する情報共有がありました。
NativeScriptは、クロスプラットフォーム開発が可能な、JavaScript/TypeScriptのフレームワークです。
ネイティブと同等の処理スピードで、ネイティブアプリのコードをインポートでき、自由度があるフレームワークのようですね。
また、WebGLという、3Dや2Dのアニメーションをレンダリングできる
JavaScriptAPIと組み合わせて使うことで、ゲームのようなアプリケーションも作成できるそうです。
WebGL Water
http://madebyevan.com/webgl-water/
フロント技術はどんどん進化していくので、今後も情報をキャッチアップしていきたいですね!
NativeScript公式サイト
4.XGBoostについて
決定木を使ったアンサンブル学習で、Kaggleでもよく利用されているXGBoostの論文紹介がありました。
決定木で予測した値と実測値の誤差を、さらに決定木で埋めていくという方法で、ライブラリがあるので簡単に利用できます。
Kaggleのチュートリアル、タイタニックデータでデモンストレーションがありました。
データ分析コンペにも積極的に参加して、知見をためて情報共有していきたいですね!
論文:
XGBoost: A Scalable Tree Boosting System
http://www.kdd.org/kdd2016/papers/files/rfp0697-chenAemb.pdf
>>参会者の感想
機械学習は範囲も広く、新しい手法やライブラリ、サービスがどんどん出ている状況なので、
今後もみんなで情報共有できると良いです!
ちなみに、いつもこんな感じでそれぞれもってきた情報を共有していますo(^o^)o
今後とも勉強会で行った内容をレポートしていきますね!
ではまたお会いしましょう!