JavaRush /Java Blog /Random-JA /ダミー向けのディープラーニング、人工知能、機械学習: 例を使って説明

ダミー向けのディープラーニング、人工知能、機械学習: 例を使って説明

Random-JA グループに公開済み
同僚と一緒に自分の知性を輝かせたり、最新の技術的なトピックについての会話で友人を驚かせたりしたいですか? 会話の中で「人工知能」または「機械学習」について言及すれば完了です。 ダミー向けのディープラーニング、人工知能、機械学習: 例を使って説明 - 1「人工知能」という言葉は今、広く聞かれるようになりました。プログラマーはAIを学びたいと考えています。リーダーは自社のサービスに AI を導入したいと考えています。しかし実際には、専門家であっても「AI」が何なのかを必ずしも理解しているわけではありません。この記事は、「人工知能」と「機械学習」という用語を理解するのに役立つことを目的としています。また、最も人気のあるタイプの機械学習であるディープラーニングがどのように機能するかについても学びます。そして重要なことは、これらの指示は非常にわかりやすい言語で書かれていることです。ここでの数学を理解するのはそれほど難しくありません。

基本

深層学習とは何かを理解するための最初のステップは、主要な用語の違いを理解することです。
ダミー向けのディープラーニング、人工知能、機械学習: 例を挙げて説明 - 2
写真:データナミ

人工知能 vs 機械学習

人工知能 (AI または AI agnl.) は、コンピューターによって人間の思考プロセスをコピーする試みです。人工知能の分野の研究が始まったばかりのとき、科学者は特定の条件下で人間の知能の動作を厳密にコピーしようとしました。つまり、特定の問題を解決するために人間の知能を研ぎ澄まそうとしました。たとえば、マシンでゲームをプレイできるようにします。彼らは、コンピューティング マシンが従わなければならない多くのルールを確立しました。コンピューターには可能なアクションのリストがあり、設計段階で設定されたルールと制限に基づいて決定を下しました。
機械学習 (英語では ML または ML) とは、明確に定義されたルールではなく、大量の情報セットを処理することによって学習する機械の能力を意味します。
ML を使用すると、コンピューターが自ら学習できるようになります。このタイプの学習では、膨大な量のデータを簡単に処理できる最新のコンピューティング技術を利用します。

教師あり学習と教師なし学習

教師あり学習では、入力と期待される出力で構成されるラベル付きデータセットが使用されます。教師あり学習を使用して人工知能をトレーニングする場合は、データを入力として提供し、出力がどうあるべきかを指定します。AI が生成した結果が期待したものと異なる場合、AI は計算を修正する必要があります。AIが間違いを犯す限り、このプロセスはデータ配列に対して何度も繰り返されます。教師あり学習の例としては、天気を予測する人工知能が挙げられます。過去のデータを使用して天気を予測する方法を学習します。入力データは気圧、湿度、風速であり、その結果として温度を取得する必要があります。 教師なし学習は、非構造化データを使用して AI をトレーニングするタスクです。教師なし学習を使用して人工知能をトレーニングすると、AI がデータを論理的に分類できるようになります。教師なし機械学習を使用した人工知能の例は、オンライン ストアでの顧客の行動を予測するロボットです。既知の入力と出力を使用せずに学習します。代わりに、入力データ自体を分類する必要があります。アルゴリズムは、どのタイプのユーザーがどの製品を好むかを識別して通知する必要があります。

機械学習の仕組み

つまり、ディープラーニングは機械学習へのアプローチの 1 つです。指定された入力データから結果を予測できます。AI をトレーニングするには、上記の教師あり学習と教師なし学習の両方のオプションを使用できます。明確な例を使用してディープ ラーニングがどのように機能するかを理解します。航空旅行の料金を予測するサービスを開発する必要があるとします。教師ありメソッドを使用してアルゴリズムをトレーニングします。航空旅行の価格を予測するサービスでは、次の入力データに基づいて価格を予測したいと考えています (プレゼンテーションを容易にするため、往復のフライトは考慮していません)。
  • 出発空港。
  • 到着空港。
  • 出発予定日。
  • 航空会社。
ニューラル ネットワーク 人工知能の脳を覗いてみましょう。生物学的な生き物の場合と同様、私たちの予測器の「頭」にはニューロンがあります。写真では、それらは円の形で表示されます。ニューロンは互いに接続されています。
ダミー向けのディープラーニング、人工知能、機械学習: 例を挙げて説明 - 3
この画像では、ニューロンが 3 つのグループのレイヤーに結合されています。
  • 入力層。
  • 隠し層 1 (隠し層 1) と隠し層 2 (隠し層 2)。
  • 出力層。
一部のデータは入力層に入力されます。私たちの場合、入力層に出発空港、到着空港、出発日、航空会社の 4 つのニューロンがあります。入力層はデータを最初の隠れ層に渡します。隠れ層は、受信した入力データに基づいて数学的計算を実行します。ニューラル ネットワークを構築する際の主な問題の 1 つは、隠れ層の数と各層のニューロンの数の選択です。
Deep Learning というフレーズの Deep という言葉は、複数の隠れ層が存在することを示しています。
出力層は結果の情報を返します。この例では、フライトの予想価格です。
ダミー向けのディープラーニング、人工知能、機械学習: 例を挙げて説明 - 4
これまでのところ、最も興味深い点を見逃しています。それは、予想価格がどのように正確に計算されるのかということです。ここからディープラーニングの魔法が始まります。ニューロン間の各接続には、特定の重み (係数) が割り当てられます。この重みによって、入力値の重要性が決まります。初期の重みはランダムに設定されます。航空旅行の費用を予測する場合、出発日が価格に最も影響します。したがって、「出発日」ニューロンの接続の重みが大きくなります。
ダミー向けのディープラーニング、人工知能、機械学習: 例を挙げて説明 - 5
各ニューロンには活性化関数が付加されています。数学の知識がなければ、この関数が何であるかを理解するのは困難です。そこで、少し単純化してみましょう。活性化関数のポイントは、ニューロンからの出力を「標準化」することです。データセットがニューラル ネットワークのすべての層を通過した後、出力層を通じて結果が返されます。これまでのところ、すべてが明らかですよね?

ニューラルネットワークトレーニング

ニューラル ネットワークのトレーニングは、ディープ ラーニングの最も難しい部分です。なぜ?大量のデータが必要になるからです。より多くの計算能力が必要になるからです。私たちのプロジェクトでは、過去の航空運賃データを検索する必要があります。さらに、出発地と目的地の空港、出発日、さまざまな航空会社のあらゆる組み合わせが可能です。チケット価格に関する非常に大量のデータが必要です。セットからの入力データをニューラル ネットワークの入力にフィードし、それらが既に得られている結果と一致するかどうかを確認する必要があります。人工知能によって得られた結果が予想と異なる場合、それは人工知能がまだ十分に訓練されていないことを意味します。ニューラル ネットワークを通じて全量のデータを実行したら、AI の結果がデータセット内の実際の結果とどの程度異なるかを示す関数を構築できます。このような関数はコスト関数と呼ばれます。私たちが全力を尽くして追求する理想的なケースでは、コスト関数の値はゼロに等しくなります。これは、ニューラル ネットワークによって選択されたコストの結果が、データセット内のチケットの実際のコストと変わらないことを意味します。

コスト関数の値を減らすにはどうすればよいでしょうか?

ニューロン間の接続の重みを変更します。これはランダムに実行できますが、このアプローチは効率的ではありません。代わりに、 Gradient Descentと呼ばれる方法を使用します。
勾配降下法は、関数の最小値を見つけることができる方法です。私たちの場合、コスト関数の最小値を探しています。
このアルゴリズムは、データセットの処理を新たに反復するたびに重みを徐々に増やすことによって機能します。特定の重みセットに対するコスト関数の導関数 (または勾配) を計算することにより、最小値がどの方向にあるかを確認できます。
ダミー向けのディープラーニング、人工知能、機械学習: 例を挙げて説明 - 6
図中: 初期重み - 初期重み、グローバル コスト最小値 - コスト関数のグローバル最小値。 コスト関数を最小化するには、データセットに対して何度も計算を実行する必要があります。このため、大量の計算能力が必要になります。重みは勾配降下法を使用して自動的に更新されます。これがディープラーニングの魔法です。AI 航空運賃予測サービスをトレーニングしたら、実際の価格を予測するために安全に使用できるようになります。

要約しましょう...

  • ディープラーニングはニューラルネットワークを使用して知能をシミュレートします。
  • ニューラル ネットワークには、入力層、隠れ層、出力層の 3 種類のニューロンがあります。
  • ニューロン間の各接続には独自の重みがあり、その入力の重要性を示します。
  • ニューロンは活性化関数を使用して、ニューロンからの出力を「標準化」します。
  • ニューラル ネットワークをトレーニングするには、大量のデータが必要です。
  • ニューラルネットワークを使用してデータ配列を処理し、出力データを実際のデータと比較すると、AIがどの程度間違っているかを示すコスト関数が得られます。
  • 各データ処理後、勾配降下法を使用してニューロン間の重みが調整され、コスト関数の削減が実現されます。
オリジナルへのリンク
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION