機械学習とは何ですか?
基本的に、これはコンピューターにいくつかのデータに基づいて予測や動作を作成および改善する方法です。この「データ」とは何ですか?まあ、それは完全に問題に依存します。歩行を学習するロボットのセンサーからの読み取り値、または特定の入力に対するプログラムの正しい出力などです。
機械学習について考えるもう1つの方法は、それが「パターン認識」であるということです。これは、パターンに反応したり認識したりするようにプログラムに教える行為です。
機械学習コードは何をしますか?
あなたが話している機械学習のtypeに依存します。機械学習はhugeフィールドであり、無数の異なる問題を解決するための数百の異なるアルゴリズムがあります-詳細については Wikipedia を参照してください。具体的には、 Algorithm Types をご覧ください。
マシンが学習すると言うとき、それはそれ自体のコードを変更しますか、それとも特定の入力セットのコードの経験を含む履歴(データベース)を変更しますか?
繰り返しますが、依存します。
実際に変更されるコードの1つの例は Genetic Programming です。ここでは、本質的にプログラムを進化させてタスクを完了します(もちろん、プログラムはそれ自体を変更しませんが、別のコンピュータープログラムを変更します)。
ニューラルネットワーク 一方で、準備された刺激と期待される応答に応じて、パラメーターを自動的に変更します。これにより、多くの動作を生成できます(理論的には、十分な時間を与えれば、任意の関数を任意の精度に近づけることができるため、any動作を生成できます)。
「データベース」という用語の使用は、情報、イベント、または経験を「記憶」することによって機械学習アルゴリズムが機能することを意味することに注意してください。これは必ずしもそうではありません(または頻繁に!)。
既に述べたニューラルネットワークは、近似の現在の「状態」のみを保持し、学習が発生すると更新されます。ニューラルネットワークは、何が起こったのか、どのように反応したのかを覚えるのではなく、「世界」の一種の「モデル」を構築します。モデルは、入力が以前に見たことのないものであっても、特定の入力にどのように反応するかを伝えます。
この最後の能力(これまでに見たことのない入力に反応する能力)は、多くの機械学習アルゴリズムの中心的な教義の1つです。交通の高速道路をナビゲートするようにコンピュータードライバーに教えることを想像してください。 「データベース」のメタファーを使用すると、可能性のある状況のmillionsで何をすべきかをコンピューターに正確に教える必要があります。効果的な機械学習アルゴリズムは、(できれば!)異なる状態間の類似性を学習し、それらに同様に反応することができるでしょう。
状態間の類似性は何でもかまいません-「mundane」と考えるかもしれないものでさえ、実際にコンピューターをトリップすることができます!たとえば、コンピューターのドライバーが、前方の車が減速すると減速する必要があることを知ったとしましょう。人間にとって、車をオートバイに交換しても何も変わりません。オートバイも車両であると認識しています。機械学習アルゴリズムの場合、これは実際には驚くほど難しい場合があります!データベースには、車が前にある場合とバイクが前にある場合についての情報を別々に保存する必要があります。一方、機械学習アルゴリズムは、自動車の例から「学習」し、オートバイの例に自動的に一般化することができます。
機械学習は、コンピューターサイエンス、確率論、最適化理論の分野であり、論理的/手続き的アプローチが不可能または実行不可能な複雑なタスクを解決できます。
機械学習には、以下を含む(ただし、これらに限定されない)いくつかの異なるカテゴリがあります。
教師あり学習
教師あり学習では、入力から出力への本当に複雑な関数(マッピング)があり、入力/出力のペアの例がたくさんありますが、その複雑な関数が何であるかはわかりません。教師あり学習アルゴリズムにより、入力/出力ペアの大きなデータセットが与えられた場合、これまで見たことのない新しい入力値の出力値を予測できます。基本的な方法は、データセットをトレーニングセットとテストセットに分割することです。トレーニングセットで最小化しようとするエラー関数が関連付けられたモデルがあり、テストセットでソリューションが機能することを確認します。モデルがテストセットで適切に実行されるまで、さまざまな機械学習アルゴリズムやパラメータを使用してこれを繰り返したら、新しい入力で結果を使用することができます。この場合、プログラムは変更されず、モデル(データ)のみが変更されることに注意してください。理論的には別のプログラムを出力することもできますが、私が知っている限り、実際には実行されません。教師あり学習の例としては、郵便局で使用される数字認識システムがあります。ここでは、ピクセルをセット0 ... 9のラベルにマッピングします。 ... 9。
強化学習
強化学習では、プログラムは決定を下す責任があり、その行動に対して何らかの賞/ユーティリティを定期的に受け取ります。ただし、教師あり学習の場合とは異なり、結果はすぐには得られません。アルゴリズムはアクションの大きなシーケンスを規定し、最後にのみフィードバックを受け取ることができます。強化学習の目標は、アルゴリズムが最高の長期効用/報酬につながる一連の決定を生成するように、良いモデルを構築することです。強化学習の良い例は、衝突センサーが物体に衝突したことを検出するたびに負のペナルティを与えることにより、ロボットにナビゲートする方法を教えることです。正しくコーディングされていれば、ロボットは最終的にその距離ファインダーセンサーデータをバンパーセンサーデータおよび車輪に送信する方向と相関させ、最終的にオブジェクトにぶつからないナビゲーションの形式を選択することができます。
詳細情報
さらに学習することに興味がある場合は、 クリストファーM.ビショップによるパターン認識と機械学習 を読むか、機械学習コースを受講することを強くお勧めします。また、無料で CIS 520の講義ノート:ペンでの機械学習 を読むことに興味があるかもしれません。
機械学習は、センサーデータなどの経験的データに基づいてコンピューターが行動を進化させるアルゴリズムの設計と開発に関係する科学分野ですまたはデータベース。 Wikipedia で詳細を読む
機械学習codeは、ある種のストレージに「事実」または近似を記録し、アルゴリズムを使用してさまざまな確率を計算します。
コードitselfは、マシンが学習するときは変更されず、「知っている」ことのデータベースのみが変更されます。
機械学習は、サンプルデータに基づいてモデルを作成し、そのモデルを使用して予測や戦略を立てる方法論です。それは人工知能に属します。
機械学習は、例(ラベルなし/ラベル付き)から準学習を生成するさまざまな学習アルゴリズムを定義するための単なる総称です。実際の精度/エラーは、学習アルゴリズムに提供するトレーニング/テストデータの品質によって完全に決定されます。これは、収束率を使用して測定できます。あなたが例を提供する理由は、あなたが選択した学習アルゴリズムが、一般化を導くガイダンスによって情報的にできるようにしたいからです。アルゴリズムは、教師あり学習(分類)と教師なし学習(クラスタリング)の2つの主要分野に分類できます。トレーニングとテストのデータセットを分離する方法、および学習アルゴリズムに提供する品質について、十分な情報に基づいて決定することが非常に重要です。データセットを提供するとき、あなたはあなたの例で過剰なフィット感と健全なバイアス感を維持するようなことにも注意を払いたいです。その後、アルゴリズムは基本的に、トレーニングのために提供されたデータから達成する一般化に基づいて書かれたものに基づいて書き込みを学習します。その後、トレーニング中にテストを行い、ターゲットのトレーニングに基づいて学習アルゴリズムを取得して新しい例を生成しようとします。クラスタリングでは、アルゴリズムは基本的にデータ間のパターンの測定を通じて生成して、関連するクラスターのセット(kmeans/knearestネイバーなど)を作成しようとします。
優れた書籍:ML入門(Nilsson/Stanford)、MLのガウス過程、ML入門(Alpaydin)、情報理論の推論と学習アルゴリズム(非常に有用な本)、機械学習(Mitchell)、パターン認識と機械学習(標準)エディンバラとさまざまな大学でのMLコースの本(数学では比較的読みやすい)、Wekaでのデータマイニングおよび実用的な機械学習(wekaを使用した理論とJavaでの実践)
強化学習オンラインで読むことができる無料の本があります: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html
IR、IE、レコメンダー、およびテキスト/データ/ Webマイニングは、一般に多くの機械学習の原則を使用します。ここでメタヒューリスティック/グローバル最適化テクニックを適用して、学習プロセスをさらに自動化することもできます。たとえば、GA(遺伝的アルゴリズム)のような進化的手法を適用して、ニューラルネットワークベースのアプローチ(学習アルゴリズムを使用する場合があります)を最適化します。純粋に確率論的な機械学習アプローチの形でアプローチできます。ベイジアン学習の例:これらのアルゴリズムのほとんどはすべて統計の使用が非常に多く、これらの学習アルゴリズムの多くにとって収束と一般化の概念は重要です。
機械学習は、類似の情報のトレーニングからパターンを学習することにより、今まで見たことのない情報を分類できるアルゴリズムを作成するコンピューティングサイエンスの研究です。この意味で、あらゆる種類の「学習者」がいます。ニューラルネットワーク、ベイジアンネットワーク、決定木、kクラスタリングアルゴリズム、隠れマルコフモデル、サポートベクターマシンがその例です。
学習者に基づいて、彼らはそれぞれ異なる方法で学習します。一部の学習者は、人間が理解できるフレームワーク(例:意思決定ツリー)を作成し、一部の学習者は一般的に理解できない(例:ニューラルネットワーク).
学習者はすべて本質的にデータ駆動型であり、後で再利用するために状態をデータとして保存します。少なくとも一般的には、それらは自己修正されません。
私が読んだ機械学習の最もクールな定義の1つは、トムミッチェルによるこの本からだと思います。覚えやすく直感的。
Pによって測定されるTのタスクでのパフォーマンスがエクスペリエンスEで向上する場合、コンピュータープログラムは、タスクTとパフォーマンス測定Pのクラスに関してエクスペリエンスEから学習すると言われています
ウィキペディアから恥知らずにリッピング:機械学習は、センサーデータやデータベースなどの経験的データに基づいてコンピューターが行動を進化させるアルゴリズムの設計と開発に関係する科学分野です。
簡単に言えば、機械学習コードは機械学習タスクを実行します。それは、センサーデータの解釈から遺伝的アルゴリズムまで、多くのことです。
私はそれが依存すると言うでしょう。いいえ、コードの変更は正常ではありませんが、可能性の範囲外ではありません。また、機械学習が常に歴史を変えるとは言いません。時々、私たちには歴史がありません。単に環境に反応したいだけで、実際には過去の経験から学びたくない場合があります。
基本的に、機械学習は非常に広く開かれた分野であり、3番目の質問に対して1つの答えを出すことを不可能にする多くの方法とアルゴリズムが含まれています。
機械学習は、人間の現実世界から取られた用語であり、実際に学習できないもの、つまり機械に適用されます。
他の答えに追加するために-機械学習は(通常)コードを変更しませんが、以前のデータまたは新しい収集データに基づいて実行パスと決定を変更し、それによって「学習」効果を変更する場合があります。
マシンを「教える」方法はたくさんあります-アルゴリズムの多くのパラメータに重みを与え、それから多くの場合、答えをフィードバックし、マシンがマシンの回答が回答にどれだけ近いか、回答に与えたスコア、またはいくつかの結果テストアルゴリズムに応じて。
これは学習の1つの方法であり、さらに多くの方法があります...