本記事は10分程度でお読みいただけます。

はじめに

このブログ記事は、Topcoder社が運営するブログの翻訳記事です。TC3株式会社はTopcoder社の日本で唯一のプレミア・パートナーであり、Topcoder社より許可を得て日本語に翻訳した記事を掲載しています。

 

英語での原文記事はA GUIDE TO BUILDING A CAREER IN DATA SCIENCEをご確認ください。

 

AI/機械学習、データサイエンス領域の取り組みは日本国内でも多くなってきています。そのような流れの中、AI人材の需要は2018年1.1万人規模から2030年には12.0万人と約11倍になると試算されています(経済産業省 IT人材需給に関する調査より)。このような中で、従業員の育成にも注目があたっていることと思います。今回は人材育成の観点で、データサイエンス領域(主に機械学習の領域)における学習のガイドをご紹介いたします。

 

ーーー翻訳ここからーーー

データサイエンス領域でのキャリアを形成するためのガイド

データサイエンス(機械学習とも知られていますが)はキャリア選定においてますます人気になってきています。データサイエンティストには、金融から鉱山業、FacebookやGoogleのようなテクノロジー企業など数多くの選択肢があります。データサイエンスは、明示的にプログラムすることなく、マシンが経験から学習して改善できる方法を構築することを目的としています。これらの方法により、マシンが今までにないパターンをデータから見つけ出す可能性があり、それらを教育された予測とすることができます。機械学習は、自動運転や空港での顔認証、効率的なウェブ検索など、いくつものキーとなる技術を生み出しました。実際に、機械学習は、近年ものすごく広まっており、あなたが知らないうちに使っているほどです。

このガイドでは、データサイエンス領域でキャリアを積むための便利なヒントをご紹介いたします。

 

学習

データサイエンスの旅の最初のステップは、学習からはじめ、確固たる知識の基盤を作っていく必要があります。オンラインから対面での学習コースまで様々なものが準備されています。

 

コンピュータ・サイエンスやエンジニアリングの学位を提供しており、データサイエンス関連の実地研修コースを提供している現地の大学を探すことは良いアイデアです。ほとんどのコースでは、予め必要とされるような線形代数、確率、微積分学、プログラミングのような内容の復習からスタートします。もしもこのような内容を学習したことがない場合には、別途学習するとよいでしょう。

 

自宅で学習したい、もしくは時間に制限があるといった方には、オンラインの学習がとてもよい選択肢でしょう。オンラインでのデータ・サイエンスのコースは多く存在し、Coursera(訳注:オンラインでの学習コースを提供するウェブサービス)は最適な選択肢を提供しています。多くのコースは無償で参加することが可能ですが、完了の認定証を取得するには少額の費用を氏は楽必要があります。

 

スタンフォード大学の教授Andrew Ng教授の”機械学習”コース

データ・サイエンス領域の最も良いコースは、スタンフォード大学のAndrew Ng教授が提供する”機械学習”です。このコースは3百万人の人が修了しています。Anderew Ng教授は、世界トップレベルの専門家であり、シンプルで理解しやすい形で説明してくれます。このコースの完了にはおよそ50時間がかかります。

 

 

IBM社”データサイエンスとは何か?”コース

IBMが短めのコースとして”データサイエンスとは何か?”というコースを提供しています。このコースでは、データ・サイエンスの基礎をたった10時間で学ぶことができます。

 

ジョン・ホプキンス大学の”データサイエンス専門講座”

ジョン・ホプキンス大学は”データサイエンス専門講座”を提供しています。データ・サイエンス領域における10のコースで構成されています。この学位は、適切に質問をすることから、線形推論を作ったり、結果を公開することまで、データ・サイエンスのパイプライン全体に必要とされる、概念とツールを対象としています。この学位を取るためには、週に7時間活用した場合、11ヶ月で完了します。

 

IBM社の”Introduction to Data Science専門講座”

IBMは、基礎的なデータ・サイエンス領域のスキルを身につけるための4つのコースで構成される、”Introduction to Data Science専門講座”を提供しています。これらのコースでは、データサイエンスとはなにかから、データサイエンティストが何をするのかを紹介します。様々な領域におけるデータサイエンスの適用性について知ることができ、データ分析によってデータ駆動な意思決定をどのようにすべきかを学ぶことができます。この学位の取得には、週4時間活用した場合4ヶ月で完了することができます。

 

ミシガン大学の”みんなのためのPython専門講座”

Pythonは、データサイエンス領域においてとても人気のあるプログラミング言語になりました。ミシガン大学は”みんなのためのPython専門講座”というPythonに関するとてもよい学位を提供しています。Pythonのデータ構造の使い方やウェブスクレイピング、SQLデータベースの実装の仕方まで学ぶことができます。この学位の取得には、週3時間活用した場合、8ヶ月で完了することができます。

 

Andrew Ng教授のディープラーニング専門講座

より発展的レベルの方向けに、Andrew Ng教授は、”ディープラーニング専門講座”というコースで学位を提供しています。深層学習は機械学習の昨今の進化において主要な要因となっています。この学位を取得するには、週5時間活用して、4ヶ月で完了することができます。

 

EdXの機械学習コース

また、別のオンラインプラットフォームでは、無償のコースも提供されています。EdXでは、週に8時間活用して12週間で完了することができる、”機械学習”と呼ばれる人気のコースがあります。

 

●Fast.aiの”プログラマーのための機械学習入門”


Fast.aiは、”プログラマーのための機械学習入門”というコースを提供しています。このコースは、Kaggleのナンバーワン競技者である、Jeremy Howard氏によるコースです。週に8時間活用し、12週間で完了することができます。

 

書籍

多くの向上心のあるデータサイエンティストは、いくつかの良書を持っていることでしょう。書籍は自分の時間とペースで学ぶことのできる良い方法です。また、コースの受講では得られないような、証明、引用文献、具体例などの深い内容を得ることもできます。良い書籍は演習や回答も提供しています。多くの本がありますが、私が推奨するのは以下の書籍です。

 

(訳注:以下書籍名は英語、日本語訳版がある場合には訳注で紹介いたします)

 

 

●”An Introduction to Statical Learning”

(訳注:未翻訳) James, Witten, Hastie and Tibshirani著

この書籍はとても明快で、簡単に理解することができます。多くの例とRによる演習を提供しています。この書籍は無償で(訳注:First Edition、2nd editionは2021年夏にリリース予定)こちらから入手することができます。

 

 

●”Hands-On Machine Learning with Scikit-Learn and TensorFlow”

(訳注:『scikit-learn、Keras、TensorFlowによる実践機械学習』)Aurelien Geron著

この書籍はPythonのプログラミングスキルを活用し、機械学習の実践にどのように活用するかを提示します。

 

 

●”Pattern Recognition and Machine Learning”

(訳注『パターン認識と機械学習 上』)Christopher M. Bishop著

機械学習に関する初期の書籍で、よく知らています。

 

 

●”The Elements of Statistical Learning: Data Mining, Inference and Prediction”

(訳注:『統計的学習の基礎 ―データマイニング・推論・予測』)Hastie, Tibshirani and Friedman著

データサイエンス領域の様々な側面に対応しています。

 

 

●”Dive into Deep Learning

Zhang, Lipton, Li and Smola著

深層学習を学習するのに良い書籍です。対話式の書籍で、Tensorflow、PyTorch、MXNetなどのような、人気のある深層学習のフレームワークを使ったコードを提供しています。

 

 

ツール

私が機械学習を15年前に開始したとき、機械学習を実現するための言語やパッケージなどが全く揃っていませんでした。私は自分自身でコードを書いたり、友達から借りたりしていました。最近では状況は大きく変わり、強力で簡単に利用できる大量のツールが利用可能です。それに加え、多くの研究者は自身のコードやモデルをGitHub上に公開しており、すぐに利用することが可能です。

 

Pythonはデータサイエンティストにとって、とても人気のあるプログラミング言語になりました。Pythonは簡潔で簡単に学習しコードすることができ、理解できる、多くの良い機能を持っています。計算用パッケージであるNumPySciPyscikit-learnや、可視化ライブラリであるMatplotlibSeabornPlotlyなどがあります。Pythonは従来型のコマンドラインでもJupyter notebookを活用した対話モードでもスクリプトを書くことができます。ほとんどすべての人気のある深層学習のフレームワークはPythonで開発されていたり、Python向けのインターフェイスが準備されています(例:TensorFlow, Keras, PyTorch, Theano, Caffeなど)。もしもスピーディに試してみたいという方は、scikit-learnを活用することを強くおすすめします。scikit-learnには多くの例、分類・回帰・クラスタリングの手法があります。

 

長年、Matlabは科学計算のデファクトスタンダードの言語でしたが、Pythonが最近ではよりデファクトスタンダードなものになりました。可視化のためのインターフェイスがあったり、データサイエンス機械学習コンピュータ・ビジョンなどむけのパッケージが多数あります。Matlabは無償の言語ではありませんが、無償版のいとこ的なものとしてOctaveというものがあります。
他にも、Rのようなプログラミング言語を使うこともよいでしょう。様々な統計学の手法が活用でき、可視化の手法も多くあります。また、活発なオープンソースコミュニティも存在しています。

 

継続は力なり


「継続は力なり」とよく言われるように、なにかを実践すればするほどそれに関するスキルが向上していくでしょう。データサイエンスにも同じことが言えます。実践する方法として最も良い方法の一つとして、オンラインの競技プログラミングで競争をすることが挙げられます。競争の形式は様々な技術を活用して、より努力し、実験を行います。競技が終了したら、優勝者の提出物を見ることも可能です。これは、学習し改善の機会を提供します。いくつかのプログラミングコンペティションが利用できます。以下は、最もよいものです。

 

Topcoderのマラソンマッチ

Topcoderは定期的に、マラソンマッチと呼ばれるデータサイエンスコンペティションを開催しています。自動的に点数付けを行う機能で提出が評価され、リアルタイムにリーダーボード(訳注:優秀者ライキング)が掲載されます。プログラミング言語としては、Java、C++、C#、Pythonなどを使うことが許されています。このような競技は楽しいだけではなく、賞金を得られたり、企業がよりよい成果を得るためのサポートができます。マラソンマッチは、最適化、予測、コンピューター・ビジョン、バイオインフォマティクス(生物情報学)などの様々な問題領域が対象となります。通常、マラソンマッチは3週間から8週間ほどの期間で開催されます。また、ゲームや最適化のような抽象的な問題を解く、楽しむことのみを目的としたマッチもあります。このようなマッチは1週間程度で開催され、学習するのに最適です。

 

Kaggleのコンペティション

Kaggleはデータサイエンスの競技者に最も有名なプラットフォームです。Kaggleは初心者から専門家まで3百万人以上が参加するオンラインコミュニティです。コンピューター・ビジョンや映画に対するユーザー評価を予測する(Netflix Prize)など、様々なコンペティションを開催しています。いくつかのコンペティションは、大きな金額の賞金が提供されており、世界中の研究者からの注目を集めています。Kaggleは19,000のデータセットを提供し、ユーザーが書いた20万のノートブックへのアクセスが可能です。Kaggleは、コンペティションの終了後に問題への対処方法や、コードなどを共有し、協力しあう文化があります。

 

その他の競技プラットフォーム

その他の競技プラットフォームとして、CodaLabDrivenDataAIcrowdがあります。コンペティションでは、賞金が提供されており、チェックする価値があります。

 

 

最近では、多くの研究者がGitHub上にコードやモデルを公開しています。それらのコードから様々なことが学ぶ機会があります。いくつかのプロジェクトとのアイデアと関連付けて検討してみてはいかがでしょうか。機械学習は年々非常に早いスピードで進化しています。したがって、最新の論文に目を通したり、開発に関する情報のアップデートを確認することが重要です。おそらく、あなたもいつか革新的なものをつくることができるでしょう!

あなたのデータサイエンスの旅がうまく進みますように。お読みいただきありがとうございました。

 

ーーー翻訳ここまでーーー

 

おわりに

いかがだったでしょうか?今回は機械学習や深層学習を学習していく方向けのヒントを翻訳し、ご紹介いたしました。機械学習、深層学習の領域は昨今日本国内でも取り組みが非常に多くなってきており、学習者もあわせて増加してきていると思います。

 

一方で、企業が上記のような学習を通し、実践力のあるエンジニアをスピーディに確保することは難しいということもあります。そのような課題に対して、TC3はデータサイエンス領域の技術コンサルティングから世界トップレベルのスキルにアクセスできるTopcoderでのコンテスト開催まで一気通貫でご支援しています。機械学習や深層学習などの領域で開発を進められている方で、スピーディに成果を上げたいという方はお問い合わせください。

 ▶過去のコンテストについて

 ▶TC3の事例について

 

なお、TC3のデータサイエンス領域のサービス内容については以下の資料に掲載されていますので、ぜひご一読ください。

 

 

 

TC3について

TC3はTC3はクラウド基盤、データサイエンス、ブロックチェーンなどの先端技術、そしてウェブ・モバイルアプリケーションの4つのテクノロジー領域に対して、グローバル開発者コミュニティであるTopcoderをはじめとしたGigを活用した独自の共創プロジェクトマネジメント手法により、お客様のクイックウィンを実現するための技術コンサルティングサービスを提供しています(Topcoderサービスについて, 独自の手法GigAgileについて)。

 

キャッチ画像は Ricardo Gomez Angel on Unsplash を活用させていただきました。