はじめに
こんにちは!Team AIでは渋谷の拠点で毎日機械学習の研究会を行なっていますが、中でも目玉なのが、データ分析のコンペサイトKaggle.comを使ったデータ分析ハッカソンです。
現状、産業別にテーマを分けて、FinTech、医療、HR、マーケティング、自然言語の各分野のハッカソンを定期的に行なっています。データ分析を学ぶ上では、確かに教科書を理解することは重要ですが、実際には"データと格闘して"経験値として覚えた方が効率が良いと我々は思っているので、ハンズオンなKaggleを学習の題材としてオススメしています。
データをこねくり回してみて、Kernel(他のユーザーのケーススタディ)を写経して理解して、腹落ちしない点を教科書から探して読んで理解する、逆向きの学習がいいと思っています。(諸説あると思いますが)
今日は、初学者のアプローチとして、Kaggle CTOがQuoraというQ&Aサイトでユーザーからの質問に答えており、内容が素晴らしかったので、概要を紹介します。
詳細は下記サイトでご覧くださいね。
https://www.quora.com/What-are-the-best-sources-to-study-machine-learning-and-artificial-intelligence
Team AIではGoogle Translation for Chromeの使用をオススメしています。私は英語は読めるのですが、クリックひとつで日本語になるこのサービスを使った方が概要をつかむ時間は短くて、生産性が上がります。
https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb?hl=en
(以下引用。かなり意訳しています)
Q&A by Kaggle CTO Ben Hamner
Question: 機械学習を学ぶ一番最適な方法は何ですか??
Answer by Ben: 以下の8つのステップです
現代は、高品質のオープンソースソフトウェアツールとライブラリをリリースされ続けていてる、勉強には非常に素晴らしい環境です!新しいオンラインコースとブログ投稿は毎日出てきます。
以下にオススメのステップを紹介します。
1.あなたが興味を持っているデータ分析の問題を選ぶ
良い問題とは?
- あなたが個人的に興味を持っている分野をカバーしている
- 問題解決のためのデータがすぐに利用できる(データの取得が難しいとプロジェクトは進みません)
- PCで快適に解析ができるデータ量である
興味がある問題がない場合、Kaggleのタイタニックプロジェクトに挑戦しましょう。
https://www.kaggle.com/c/titanic
2.その問題を、Quick & Dirtyに、ハックして、最初から最後まで一貫して解決する
細部にこだわって完璧を目指すあまり、実装の詳細でうんざりしたり、
間違ったアルゴリズムを何度もチューニングするのはやめましょう。
Quickに、ブサイクで汚くてもいいので、まずは一度問題を強引に解決してしまいましょう。
オススメのシンプルな行動;
- データを読み込む
- 機械学習に適した形式への処理
- 基本モデルで学習を進める
- 結果の評価
3.自分の作った学習モデルを進化させて改善する
- 2で基礎機能は構築できました。次は創造する段階です。
- 最初に作ったモデルの各要素を改善し、結果を測定し効果検証しましょう。
- より多くのデータを取得したり、前処理を改善することがより時間 対 効果を生むでしょう。
- 積極的にデータを視覚化し、構造や特徴をよりよく理解しましょう。
4.自分のソリューションを共有する
- 積極的にアウトプットを発表しましょう。世の中から貴重なフィードバックをもらえます。同時に、自分の作ったコンテンツが人の役に立つのは嬉しいものです。KaggleのDataSetやKaggleのKernelは、自分の研究発表をするのにとても良い場所です。
http://blog.kaggle.com/2016/01/19/introducing-kaggle-datasets/https://www.kaggle.com/getting-started/23582
他のユーザーに自分の研究成果の続きをやってもらう事もできます。ポートフォリオが充実すればするほど、プロフィールが強化されます。
5.さまざまな問題のセットで#1-4を繰り返します。
- 様々なビジネスドメインで様々なデータセットの問題解決を試しましょう
- 表形式、テキスト、画像、時系列など、アプローチがそれぞれ異なるのがわかるでしょう
- 実際のビジネスの現場では、ゴールがゆるくしか決まってない場合がほとんどなので、課題設定や解法を考え出す訓練をしましょう。Kaggle CompetitonとKaggle Datasetは事例集としてとてもオススメです。
https://www.kaggle.com/competitionshttps://www.kaggle.com/datasets
6. Kaggleのコンペに真剣に挑戦する
CompetitionはDatasetと違い、世界からの数千人の参加者がしのぎを削っています。
スキルアップにはとても良いチャンスですし、同じ問題を何度も何度も実証実験することになるでしょう。仲間とチームを組んでCompetitionに挑み、賞金を狙う事もできますよ。
Forum: ユーザーがアプローチを議論している貴重な情報源です。
Kernel:ユーザーの分析結果のケーススタディを行う便利な場です。
UpVoteを見れば、どのKernelが優秀かすぐわかります。
7.専門レベルを上げて機械学習を適用する
ここまでくれば後は場数です。
積極的に実務のプロジェクトやコンサルティングに挑戦し、
世の中のデータハッカソンやコミュニティと関わってスキルを磨き続けましょう。
専門的な機械学習の職に転職チャレンジしてもいいでしょう。
AIエンジニア、データサイエンティスト、研究者等の方向性も徐々に決めていきましょう。
実務ではかなりハイレベルな知識とプログラミングスキルが必要なことがわかるでしょう。
是非下記にチャレンジしてみてください。
専門的な機械学習のための貴重な機会は次のとおりです;
- 実務課題での機械学習の適用
- 機械学習の研究を行い、最先端技術を学ぶ(論文など)
- 機械学習を活用してプロダクトやビジネスの意思決定を実際に改善する
8.機械学習を他の人に教える
他の人に教えることは、あなたの概念理解を深めます。
あなたのスタイルに最も適したものを選んでください。:
- 研究論文を書く
- 議論をする
- ブログ記事やチュートリアルを書く
- Kaggle、Quora、その他のサイトで質問に答える
- 個人指導やセミナーを行う
- コードを共有する(Kaggl KernelとGitHub上で)
- 本を書く
(引用終)
おわりに
いかがでしたか?Kaggleのプロモーション的な要素もありますが、それくらいKaggleは素晴らしいサービスだと思います。Quick & Dirtyのくだりや、アウトプットとフィードバック重視な部分は非常に共感できます。途中登場する”Competitionへの真剣挑戦”は、Team AIでチームメンバーのマッチングもやっていますので、興味ある方は是非お教えください。