コンピュータプログラムは、あるクラスのタスクTとパフォーマンス指標Pに関して、Pで測定されるT内のタスクでのパフォーマンスが経験Eとともに向上する場合、経験Eから学習すると言われます。 ~ トム・M・ミッチェル
機械学習は、子供の成長に似ています。
機械学習は、子供の成長に似ています。子供が成長するにつれ、タスクTを実行した経験Eが増え、結果的にパフォーマンス指標(P)が高くなります。
例えば、「形を並べるブロック」のおもちゃを子どもに与えます(このおもちゃの中には、さまざまな形や形の穴があることは皆さんご存知ですね)。 この場合、私たちのタスクTは、ある形に対して適切な形の穴を見つけることです。 その後、子供は形を観察し、形の穴にはめ込もうとします。 例えば、このおもちゃには、丸、三角、四角の3つの形があるとします。
2回目の挑戦では、子どもはこのタスクに少し慣れていることに気づきます。
次に、子どもはもう一度この課題に挑戦し、この課題に少し経験があることに気づきます。得られた経験(E)を考慮して、子どもはこの課題にもう一度挑戦し、パフォーマンス(P)を測定すると、2/3になります。
経験値(E)が増え、パフォーマンス(P)も上がり、このおもちゃの試行回数が増えると、パフォーマンスも上がり、結果的にパフォーマンスが上がることがわかりました。
このような実行は、機械学習に似ています。 機械が行うのは、タスク(T)を受け取り、それを実行し、そのパフォーマンス(P)を測定することです。 機械は大量のデータを持っているので、そのデータを処理すると、時間とともに経験値(E)が増え、結果的にパフォーマンスの測定値(P)が高くなります。
アーサー・サミュエルによる機械学習の別の定義:
機械学習とは、「コンピュータに、明示的にプログラムされることなく学習する能力」を与えるコンピュータサイエンスのサブフィールドである。 ~ Arthur Samuel
この定義を理解してみましょう。 つまり、コンピュータに特定のルールを教えるのではなく、コンピュータに十分なデータを与え、そこから学ぶための時間を与えることで、自ら失敗を重ね、それを改善していくということです。 例えば、形のはめ込み方を教えたわけではありませんが、同じ作業を何度も行うことで、子どもは自分でおもちゃに形をはめ込むことができるようになりました
従って、形のはめ込み方を明示的に教えたわけではないと言えます。 機械でも同じことが言えます。 機械に十分なデータを与え、必要な情報を与えます。
なぜ機械学習が必要なのか
例えば、猫と犬の画像があるとします。 私たちがしたいのは、それらを猫と犬のグループに分類することです。
- それぞれの動物の目は何個あるか
- それぞれの動物の目の色は?
- それぞれの動物の身長は?
- それぞれの動物の体重は?
- それぞれの動物は一般的に何を食べているのか?
これらの質問の答えに対して、ベクトルを形成します。
高さ>>が15ポンドであれば、それは猫である可能性があります。
さて、このようなルールのセットを、すべてのデータポイントに対して作らなければなりません。
この実験の結果、多くの動物を誤って分類してしまい、実りあるものにならなかったと仮定しましょう。このことは、機械学習を使用する絶好の機会を与えてくれます。
機械学習が行うことは、さまざまな種類のアルゴリズムでデータを処理し、猫か犬かを判断するのにどの特徴がより重要であるかを教えてくれることです。 そのため、多くのルールセットを適用する代わりに、2つか3つの特徴に基づいて単純化することができ、結果的に高い精度が得られるのです。 これまでの方法では、予測を行うには十分な一般化ができませんでした。
機械学習モデルは、以下のような多くのタスクに役立ちます。
- 物体認識
- 要約
- 予測
- 分類
- クラスタリング
- リコメンダーシステム
- その他
機械学習モデルとは?
機械学習モデルとは、機械学習関連の処理を行う質問・回答システムです。 問題解決のためにデータを表現するアルゴリズムシステムと考えてください。
例えば、私たちがGoogle AdwordsのMLシステムを担当していて、データを使って特定の層や地域を伝えるためのMLアルゴリズムを実装するという課題があったとします。
Major Machine Learning Algorithms:
連続した値を予測するには回帰アルゴリズムを使用します。
回帰アルゴリズム。
- 線形回帰
- 多項式回帰
- 指数回帰
- ロジスティック回帰
- 対数回帰
分類
一連のアイテムのクラスやカテゴリーを予測するために分類アルゴリズムを使用します。
分類アルゴリズム:
- K-Nearest Neighbors
- Decision Trees
- Random Forest
- Support Vector Machine
- Naive Bayes
Clustering
データの要約や構造化のために、クラスタリングアルゴリズムを使用します。
Clustering algorithms:
- K-means
- DBSCAN
- Mean Shift
- Hierarchical
Association
共起するアイテムやイベントを関連付けるためにAssociationアルゴリズムを使用します。
Association algorithms:
Anomaly Detection
Anomaly Detection(異常検知)は、異常な活動や異常なケースを発見するために使用します。
Sequence Pattern Mining
Sequential Pattern Mining(連続パターンマイニング)は、連続したデータ例の間で次のデータイベントを予測するために使用します。
Dimensionality Reduction
データセットから有用な特徴だけを抽出するために、データのサイズを縮小する次元削減を使用します。
Recommendation Systems
レコメンデーション エンジンを構築するためにレコメンダー アルゴリズムを使用します。
例:
- Netflixのリコメンデーションシステム
- 書籍のリコメンデーションシステム
- Amazonの商品リコメンデーションシステム
最近では、人工知能、機械学習、深層学習などのバズワードをよく耳にするようになりました。
人工知能、機械学習、深層学習の根本的な違いとは
📚 編集部おすすめの機械学習の本をチェックしてみましょう。 📚
人工知能(AI):
人工知能(AI)とは、アンドリュー・ムーア教授が定義したもので、最近まで人間の知能が必要だと思われていた動作をコンピュータにさせるための科学と工学のことです。
以下のようなものがあります。
機械学習(ML)。
トム・ミッチェル教授の定義によると、機械学習とはAIの科学的な一分野であり、コンピュータプログラムが経験によって自動的に改善されることを可能にするコンピュータアルゴリズムの研究に焦点を当てています。
機械学習には以下のようなものがあります。
深層学習
深層学習は機械学習のサブセットであり、層状のニューラルネットワークを高い計算能力と大規模なデータセットと組み合わせることで、強力な機械学習モデルを作成することができます。
なぜ機械学習アルゴリズムの実装にPythonを好むのか?
Pythonは人気のある汎用のプログラミング言語です。 私たちはPythonを使って機械学習アルゴリズムを書くことができ、それはうまく機能します。
いくつかのエキサイティングなPythonライブラリを簡単に見てみましょう。
- Numpy。 Numpyは、Pythonでn次元配列を扱うための数学ライブラリです。
- Numpy:Pythonでn次元配列を扱うための数学ライブラリで、効果的かつ効率的に計算を行うことができます。 信号処理、最適化、統計などを含む数値アルゴリズムとドメイン固有のツールボックスを集めたものです。 Scipyは、科学的で高性能な計算のための機能的なライブラリです。
- Matplotlib。 流行のプロッティングパッケージで、2Dプロッティングだけでなく、3Dプロッティングも提供しています。
- Scikit-learn: プログラミング言語pythonのための無料の機械学習ライブラリです。
機械学習アルゴリズムは2つのグループに分類されます:
- 教師あり学習アルゴリズム
- 教師なし学習アルゴリズム
I. 教師付き学習アルゴリズム:
目標:クラスや値のラベルを予測すること。
教師付き学習は、ラベル付きの訓練データから関数を推論することに関連する機械学習の一分野(今のところ、機械/深層学習の主流かもしれません)です。 訓練データは、*(input, target)*のペアで構成されており、入力は特徴量のベクトル、ターゲットは関数に出力させたいものを指示します。 ターゲットの種類に応じて、教師付き学習は分類と回帰の2つに大別されます。 分類では,画像分類のような単純なものから,機械翻訳や画像キャプションのような高度なものまで,カテゴリー的なものが対象となります。 回帰は、連続的な対象を扱います。 回帰は連続的な対象を扱います。例としては、株価予測、画像のマスキングなどがありますが、いずれもこのカテゴリーに属します。
教師付き学習とは何かを理解するために、例を挙げて説明します。 例えば、子供に100個のぬいぐるみを与えます。その中には、ライオンが10個、サルが10個、ゾウが10個など、それぞれの種類の動物が10個ずつ入っているとします。 次に、その子供に、動物の特徴(フィーチャー)に基づいて、動物の種類を認識することを教えます。 例えば、色がオレンジだったらライオンかもしれない。
子供に動物を区別する方法を教えますが、これは教師あり学習の一例です。
この例では、子供の分類のうち 8/10 が正しかったことがわかります。
この例では、彼の分類のうち8/10が正しかったことがわかります。 同じことがコンピュータにも当てはまります。 コンピュータには、何千ものデータポイントとその実際のラベル付けされた値が提供されます(ラベル付けされたデータとは、データを異なるグループに分類し、その特徴値を加えたものです)。 そして、訓練期間中にその異なる特徴から学習します。 学習期間が終わると、学習したモデルを使って予測を行うことができます。 このとき、機械にはすでにラベル付きのデータが与えられているので、予測アルゴリズムは教師付き学習に基づいていることを覚えておいてください。 つまり、この例による予測は、ラベル付きデータに基づいていると言えます。
教師あり学習アルゴリズムの例 :
- 線形回帰
- ロジスティック回帰
- K-Nearest Neighbors
- 決定木
- Random Forest
- サポートベクターマシン
II. 教師なし学習:
目標:データのパターンやグループ化を決定すること
教師あり学習とは対照的です。
おそらく教師なし学習の最も基本的なタイプは、PCA や t-SNE などの次元削減法で、PCA は一般的にデータの前処理に使用され、t-SNE は通常データの視覚化に使用されます。
さらに進んだ分野としては、K平均クラスタリング、ガウス混合モデル、隠れマルコフモデルなど、データの隠れたパターンを探り、それを予測するクラスタリングがあります。
表現学習は、下流のタスクに役立つ高レベルの代表的な特徴を抽出することを目的とし、生成モデルは、入力データをいくつかの隠れたパラメータから再現することを目的としています。
教師なし学習は、その名の通りの働きをします。 このタイプのアルゴリズムでは、ラベル付きのデータはありません。 そのため、機械は入力データを処理して、出力についての結論を出そうとします。 例えば、形のおもちゃを与えた子供のことを思い出してみてください。
しかし、ここで問題なのは、私たちは、形状に適合する方法 (機械学習の目的ではラベル付きデータと呼ばれる) を教えることで、子供に餌を与えているわけではないということです。 しかし、子供は、おもちゃのさまざまな特性から学習し、それについて結論を出そうとします。
教師なし学習アルゴリズムの例:
- 次元削減
- 密度の推定
- マーケットバスケット分析
- Generative adversarial networks (GANs)
- クラスタリング