人間よりも賢い機械を設計する試みは新しいものではありません。
コンピューターサイエンスが人間の「知性」に対して行った非常に初期の攻撃の 1 つは、チェスのゲームを通じたものでした。チェスは人間の知性と創造性を試す究極のテストであると多くの人が考えています (あるいは、そうであったと言うべきでしょうか?)。1960 年代から 1970 年代にかけて、コンピューター サイエンスにはさまざまな学派がありました。
コンピュータがチェスで人間を追い越すのは時間の問題だと考える人もいれば、そんなことは決して起こらないと信じている人もいた。
カスパロフ vs. ディープ・ブルー
人間対機械の思想戦をフィーチャーした最もセンセーショナルなイベントは、当時の世界チャンピオン、ガルリ・カスパロフ(そして間違いなく史上最高のチェスプレイヤー)と、まさにこのイベントのためにIBMが設計したスーパーコンピューターである ディープ・ブルー との間の1996年のチェスの試合だった。

長い話を手短に言うと、カスパロフは 1996 年の試合では納得のいく勝利 (4 対 2) をしましたが、1997 年の再戦では多くの 論争 とカスパロフの IBM に対する直接の不正行為疑惑のさなか負けました (4.5 対 3.5)。
いずれにせよ、チェスとコンピューター サイエンスの時代は終わりました。コンピュータには、生きている人間よりも賢い権利が与えられていました。 IBMは復讐に満足し、ディープ・ブルーを解体して次に進みました。
現在、一般的なハードウェアで動作する通常のチェス エンジンに勝つには、グランドマスターは不可能です。
機械学習ではないものは何ですか?
機械学習についてさらに詳しく説明する前に、いくつかの誤解を解いておきましょう。機械学習は、どう考えても人間の脳を複製する試みではありません。イーロン・マスクのような人たちがセンセーショナルな信念を抱いているにもかかわらず、コンピューターサイエンスの研究者たちは、自分たちはこの聖なる穀物を探し求めているわけではないし、もちろんそれに近いところでもないと主張している。
簡単に言えば、機械学習は、例による学習プロセスをコンピューターに適用する実践です。これは、考えられるすべてのシナリオを考え出し、それらのルールをシステムにハードコーディングするのに人間のプログラマーに依存する従来のアプローチとは対照的です。
正直に言うと、これが機械学習の概要です。大量のデータをコンピューターに供給して、ソース コードに依存するのではなく、例 (試行 → エラー → 比較 → 改善) から学習できるようにします。
機械学習の応用
それでは、機械学習が黒魔術ではなく、ターミネーターを生み出すものでもないとしたら、何の役に立つのでしょうか?

機械学習は、従来のプログラミングがうまくいかない場合に役立ちます。これらのケースは通常、2 つのカテゴリのいずれかに分類されます。
- 分類
- 予測
名前が示すように、分類は物事を正しくラベル付けすることを目的としていますが、予測は過去の値の十分に大きなデータセットを前提として、将来の予測を修正することを目的としています。
機械学習の 興味深い応用例 は次のとおりです。
スパムフィルタリング
電子メールスパムは蔓延していますが、これを阻止するのは悪夢のような作業になる可能性があります。スパムはどのように定義されているのでしょうか?特定のキーワードの存在ですか?それとも書き方のせいでしょうか?プログラムに関して、網羅的なルールを考えるのは困難です。
これが、私たちが機械学習を使用する理由です。何百万ものスパム メッセージと非スパム メッセージをシステムに表示し、残りをシステムに判断させます。これが、2000 年代初頭に個人メールを揺るがした Gmail の優れたスパム フィルターの背後にある秘密でした。
推奨事項
現在、主要な電子商取引企業はすべて、強力な推奨システムを備えています。場合によっては、私たちがこれまでその項目をクリックしたことがなかったにもかかわらず、役立つと「思われる」ものを推奨する彼らの能力は、信じられないほど正確です。
偶然?全くない!
ここでは機械学習が熱心に働いており、何テラバイトものデータを消費し、私たちの不安定な気分や好みを予測しようとしています。
チャットボット
奇妙にロボットのように見えながらも、興味深い世間話ができるファーストレベルのカスタマーサポートに遭遇したことがありますか?

そうですね、あなたは機械学習によって買収されたことになります。
会話から学習し、いつ何を言うべきかを判断することは、チャットボット アプリケーションの今後のエキサイティングな分野です。
雑草の除去
農業では、機械学習を活用したロボットを使用して、作物に囲まれた雑草やその他の不要な植物を選択的に散布します。
そうしないと、これを手作業で行う必要があり、システムが製品にもキラー液体をスプレーするため、非常に無駄になります。
音声検索
音声ベースのコンピューター システムとの対話は、もはや SF の話ではありません。現在、Alexa、Siri、Google Home などのデジタル アシスタントがあり、口頭でコマンドを受け取ることができ、混乱することはありません (まあ、ほとんど!)。

人類をこれまで以上に怠け者にするので、これは避けるべき発明だと主張する人もいるかもしれないが、その有効性については議論の余地はない。
医学的診断
機械学習ベースのシステムが X 線などによる 診断 において経験豊富な医師を上回り始めているため、私たちは医療診断に革命を起こそうとしています。
これは医師がすぐに必要なくなるという意味ではなく、医療の質は劇的に向上する一方で、コストは大幅に下がるということに注意してください(企業カルテルの指示がない限り!)。
これは、機械学習が何に使用されているかのほんの一例にすぎません。最近では、自動運転車、戦略ゲームをプレイするボット、T シャツ折り機、キャプチャ破り、白黒写真の着色などが起こっています。
機械学習の種類
機械学習の手法には 2 種類あります。
システムが人間の判断によって指示される教師あり学習と、システムがすべて単独で学習するようにされる教師なし学習です。同じことを別の言い方で言えば、教師あり学習では、入力と期待される出力の両方を含むデータセットがあり、システムはそれを比較して自己修正するために使用します。ただし、教師なし学習では、測定対象となる既存の出力がないため、結果は大きく異なる可能性があります。
教師なし機械学習のエキサイティングで骨が凍るようなアプリケーションですか?
それは、ボード ゲームをプレイするボットであり、プログラムにゲームのルールと勝利条件を教えてから、独自のデバイスに任せることになります。その後、プログラムはそれ自身と何百万ものゲームを行い、その間違いから学び、有利な決定を強化します。
十分に強力なコンピューターを使用している場合は、世界に勝つ AI を数時間で準備できます。
次の画像は、これらのアイデアを簡潔に示しています ( 出典: Medium ):


機械学習用のツールとライブラリ
データ サイエンスの専門家は、複雑な機械学習の問題を解決するために、多くの ML ツールとライブラリを利用します。ここでは、試してみることができる最高の機械学習プラットフォームをいくつか紹介します。
#1. TensorFlow
TensorFlow は 、実稼働グレードの ML モデルを作成するために多くの人に愛されているエンドツーエンドの ML プラットフォームです。事前トレーニングされたモデルを直接使用することも、独自のモデルを作成してトレーニングすることもできます。
どのようなスキル レベルを持っていても、このツールを使用すると ML ソリューションを簡単に見つけることができます。ツールキットに TensorFlow が含まれていると、研究段階から本番環境への移行が容易になります。これにより、ソリューションをより迅速に見つけて、ワークフローの各段階で ML タスクをスピードアップすることができます。

特徴:
- データの読み込みと処理、強力な ML モデルの構築、初期モデルのトレーニングとその検証のための標準データセットなどの TensorFlow ツールを使用して、大規模なデータの前処理、クリーンアップ、統合を行います。
- TensorFlow エコシステムは、モデルの作成、トレーニング、エクスポートを合理化する Core フレームワーク上で開発されています。
- モデルの迅速な反復、分散トレーニング、Keras を使用した簡単なデバッグなどのサポート
- TensorBoard とモデル分析による改善と開発の追跡
- モデルをオンデバイス、オンプレミス、クラウド、ブラウザー、エッジ デバイス、サーバー、モバイル、CPU、GPU、マイクロコントローラー、FPGA で実行およびデプロイします。
TensorFlow は、モデル追跡、データ自動化、モデル トレーニング、パフォーマンス監視のための MLOps とベスト プラクティスの実装にも役立ちます。
#2. scikit-learn
scikit-learn は、 予測データ分析を実行するために使用できる効率的かつシンプルな ML ツールです。誰でもアクセスでき、さまざまなコンテキストで再利用できます。 scikit-learn は、SciPy、NumPy、および matplotlib 上に構築されています。
最も優れた点は、scikit-learn が商用利用可能で BSD ライセンスを備えたオープンソース ツールであることです。このツールは次の場合に役立ちます。
- 分類: SVM、ランダム フォレスト、最近傍アルゴリズムなどの ML アルゴリズムを通じてオブジェクトのカテゴリを識別します。画像認識やスパム検出に使用されます。
- 回帰: SVR、ランダム フォレスト、最近傍法などのアルゴリズムを通じてオブジェクトの継続的に評価される属性を予測します。株価や薬への反応を予測する際に使用されます。
- クラスタリング: K-Means、平均シフト、スペクトル クラスタリングなどのアルゴリズムを通じて、類似したオブジェクトをグループ化します。実験結果のグループ化や顧客のセグメント化に使用されます。
- 次元削減: PCA や特徴選択などのアルゴリズムを通じて考慮するランダム変数を削減します。可視化して効率を高めるために使用されます。
- モデルの選択: 相互検証とグリッド検索を通じてモデルとパラメーターを比較、検証、選択します。精度を上げるために使われます。
- 前処理: 入力データを変換するために正規化と特徴抽出を実行します。
#3. MATLAB
MATLAB は 、何百万もの科学者やエンジニアが使用する人気のある数値コンピューティングおよびプログラミング プラットフォームです。データの分析、モデルの作成、アルゴリズムの開発に役立ちます。
そのデスクトップ環境は、配列と行列の数学を直接表現するプログラミング言語による設計プロセスと反復分析用に調整されています。

特徴:
- データのモデル化、分析、調査、視覚化
- Web アプリやデスクトップ アプリとともにクラス、関数、スクリプトを作成する
- ライブ エディター: 実行可能なノートブックで書式設定されたテキスト、出力、コードを含むスクリプトを作成します。
- MATLAB アプリケーションを使用すると、アルゴリズムがデータをどのように処理するかを確認し、作業を自動化するプログラムを反復および生成できます。
- わずかな変更を加えれば、クラウド、GPU、クラスター上で分析を実行できます
- 並列コンピューティングを実行する
- AzureおよびAWSとの互換性
機械学習: 学習リソース
さて、皆さんは機械学習とそれが世界征服にどのように役立つかについて熱心に取り組んでいますが、どこから始めればよいでしょうか?
以下に、博士号を取得せずに機械学習を流暢に習得するのに役立つ、Web 上の素晴らしいリソースをいくつかリストしました。コンピューターサイエンスで!あなたが機械学習の研究者でない場合でも、機械学習の領域はプログラミング全般と同じくらい実用的で楽しいものであることがわかるでしょう。
心配しないでください。現在のレベルに関係なく、優れた機械学習プログラムのように、独学で学習して向上させることができます。 😛
#1. プログラミング
機械学習を始めるための最初の要件は、プログラミングを学ぶことです。それは、機械学習システムがさまざまなプログラミング言語のライブラリの形式で提供されるためです。
Python が最も推奨されています。その理由の 1 つは、Python を学ぶのが非常に楽しいためであり、また、Python にはライブラリとリソースの大規模なエコシステムがあるためです。

Python に少し慣れている場合でも、 公式の 初心者ガイドは始めるのに最適です。または、この ブートキャンプ コースを 受講して、ゼロからヒーローになってください。
#2. 統計を考える
Python の基礎を終えたら、2 番目にお勧めするのは、2 冊の優れた書籍に目を通すことです。これらは 完全に無料で 、PDF としてダウンロードできます。 Think Stats と Think Bayes は、 意欲的な機械学習エンジニア全員が取り入れるべき 2 つの現代の古典です。
#3. Udemy
現時点では、 Udemy のコースをいくつか受講することをお勧めします。インタラクティブで自分のペースで進められる形式は、核心を理解して自信を高めるのに役立ちます。
開始する前に、コースのプレビュー、レビュー (特に否定的なもの!)、コースの全体的な雰囲気を必ずチェックしてください。
YouTube では無料で素晴らしいチュートリアルを見つけることもできます。 Sentdex は私がお勧めできるチャンネルの 1 つで、常にたくさんの楽しいことが起こっていますが、彼のアプローチは初心者向けではありません。
#4. アンドリュー・ン
Coursera で Andrew Ng が教えているコースは、おそらく機械学習の基礎について最も人気のある学習リソースです。

R プログラミング言語を使用していますが、主題の扱い方と明快な説明においては比類のないものです。このコースのおかげで、Andrew Ng は ML サークルにおいて神のような地位を獲得し、人々は彼を究極の知恵として尊敬しています (冗談ではありません!)。
これは初心者向けのコースではありませんが、データラングリングがすでに得意で、途中で多少の副調査を気にしない場合には、このコースが最もお勧めです。
#5. ユダシティ
Udacity でこのナノ学位を取得して、機械学習エンジニアになりましょう。

コースを完了して終了するまでに約 3 か月かかります。機械学習アルゴリズムと、それをモデル化して本番環境にデプロイする方法について、かなりのアイデアを持っていることが期待されます。
結論
インターネット上にはリソースが無限にあるため、始めるとすぐに迷ってしまいます。世の中にあるチュートリアルやディスカッションのほとんどは数学的に難しかったり、構造が欠けていたりするため、始める前に自信を失う可能性があります。
したがって、私は自己破滅に対して警告したいと思います。目標は控えめに保ち、最小限のステップで移動してください。機械学習は 1 ~ 2 日で慣れるものではありませんが、すぐに楽しくなり、恐ろしいものを作成できるようになるかもしれません。
楽しむ! 🙂