4日目の記事ですこんにちは、馬場です。年齢なのかなんなのか、エンジニアリングのステージにたどり着く前の、おおきくぼんやりとした仕事を任されることが増えた、2018年はそんな一年でした。このふんわりを言語化できるようにならないとなあ、と思いつつ、何か考える上でのフレームワークみたいなものがないものかともがいていたらこの記事にたどり着きました。......ここに解があるはず?!読んでみます。はじめにまずは、このコースの目的が「機械学習の問題を定められるようにする」ことだと言っています。機械学習が解くべき問題、他のプログラムで解いた方がいい問題を実例をあげて解説していくようです。ついて簡単に説明しています。機械学習の適用事例として「Gmailのスマートリプライ」「Youtubeの[次の動画]」「Tensorflowできゅうりの仕分け」をあげてます。ここで読者への質問が3つありました。これらの機械学習システムは、どんなユーザの問題を解決したのか?これらのシステムのアウトプットはどんなもの?それぞれどんなデータソースを利用したの?2の質問で、私は「きゅうりの仕分け」事例の答えとして「各きゅうりの分類ラベル」と回答しました。Googleさんの回答例は「きゅうりを正しい分類箱に入れるためのロボットアームの向き」でした。本当に課題解決する機械学習システムを設計するためには、「何を推論するか」定めるだけでは不十分で、プログラムなどで実現可能な処理まで想定しないといけないいうことです。考慮すべき重要なポイントのようです。機械学習に取り組むときの心構え"機械学習をするならば、我々の課題への取り組み方を変えなければならない。数学的なものからより自然科学的なものになっている。実験し、結果を統計的に(論理ではなく)分析・解釈するのである。Directorコンピュータサイエンスでは、問題は理論をつみあげて解きプログラムで記述することが求められていましたが、機械学習においてはこのような考え方や取り組み方を変えないといけない、ということです。そのために、機械学習で最初にとりくむのは「実験の設計」だと言っています。機械学習は万能ではなく、解決できる問題に向き・不向きがあります。ここでは機械学習向きの問題がなにか、解説しています。逆に以下のような問題は不向きだと。機械学習にとりかかる前にそして、機械学習の問題を定義してデータを見る前に、いまいちど機械学習のアウトプットでどのような「決定」を行うのか、洞察を深めることを提案しています。教師学習はラベルが必要。「ここを目的にしたら理想的な結果からずれていく」ような指標があればあげておくヒューリスティクス機械学習ではなくルールベースでシンプルに解決できる方法がないか?実際に採用しなくてもベースラインになるよ問題を「機械学習の問題」に定義しなおすさて、ここまで徹底的にサービスに実装可能な機械学習の問題か、吟味した結果、やはり「これは機械学習で解決するべき問題」と判断したら、あともう一息、モデルの設計を行います。回帰にならないか?単純なモデルの方が実装しやすいぞ良いベースラインになるからなラベル付けされたデータがあるかどうか確認するモデルのためのデータを設計するデータがどこからくるのか確認する簡単に取得できる入力データがあるか探してみるまとめいかがでしたか。本当に最初の最初から徹底的に、この機械学習システムをどのプロダクトのどのシーンでどのように利用するのか、考え抜け、ということでした。機械学習システムと技術的負債の論文を書いたGoogleさんです。記事の内容が、決定につながる機械学習の問題定義とモデル設計の二つのフレームワークにまとめられているのもいいですね。次はこのあたりからせめていこうと思いました。Codeのフォーマッタを自分好みに設定してみる。