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