機械はどのように学習し、何を学ぶのでしょうか?人間はどうやって機械に学習を教えるのでしょうか?この記事では、さまざまなアルゴリズムの原理と応用について事例を用いて説明します。 簡単に言えば、機械学習とは、人間が特定のコンピューター アルゴリズムを定義し、コンピューターが入力サンプルと人間の介入に基づいてその機能と特性を要約および一般化し、これらの機能と特性を使用して特定の学習目標とのマッピング関係を形成し、対応する応答を自動的に行うプロセスです。 この応答は、対応するマークや判断である場合もあれば、画像、プログラム コード、テキスト、サウンドなどのコンテンツの出力である場合もあります。また、マシン自体が学習するものは、関数、プログラム、一連の戦略などの比較的複雑な関係記述として記述できます。
アルゴリズムが初めて登場したとき、それは機械命令実行の決定論的なシーケンスであり、つまり、マシンが実行する必要のあることはプログラムの先頭で設定されていました。プログラム実行プロセスに関わるオブジェクト、実行時間、実行分岐条件などはプログラム実行中に限られたパラメータで設定できますが、基本的な動作ロジックは大まかに決まっています。 このプロセスでは、マシン、つまりコンピュータは非常に受動的です。コンピュータは、プログラマーから与えられた命令実行シーケンスを、いかなる「学習」動作も行わずに正直かつ厳密に実行します。元のチューリング マシン モデルは、コンピューターがこのように動作することを想定して設計されたため、これを回避する方法はありません。 学習の種類の観点から見ると、最も一般的な機械学習は次の 2 つのタイプに分けられます。
いわゆる「教師なし学習」とは、ラベルのないトレーニング ベクトル データの内部の暗黙的な関係を見つけようとする一種のマイニング作業を指します。このプロセスでは、ユーザーはこれらのサンプルをマークしたり、必要な「ハイパーパラメータ」を設定することを除いてプロセスに介入したりする必要はありません。「教師あり学習」はこれとは異なります。各サンプルには明確なラベルがあります。最終的には、これらのトレーニング サンプル ベクトルとラベル間のマッピング関係を要約するだけです。 したがって、これら 2 つの方法では処理ロジックが大きく異なるため、初心者は特に注意する必要があります。 1. クラスタリング クラスタリングは、英語で「教師なし学習」の典型的なタイプです。これは、物理的なオブジェクトまたは抽象的なオブジェクトのコレクションを、互いに類似したオブジェクトで構成される複数のクラスにグループ化する分析プロセスです。 クラスタリング行動は不思議だと考えるべきではありませんし、機械学習に特有だと考えるべきでもありません。それどころか、クラスタリング行動の起源は人間自身にあります。私たちが学ぶデータマイニングや機械学習のアルゴリズムやアイデアの源は、すべて人間自身の考え方です。唯一の違いは、私たちがそれを機械に教え、機械に私たちの代わりに仕事をさせ、機械に私たちの代わりに創造や思考をさせるのではなく、機械を私たちの手足や能力の延長にしている点です。 クラスタリングとはどのような現象でしょうか?客観的な世界を理解する過程で、私たち人間は実はずっと容量の問題に直面してきました。私たちが出会うすべての木、すべての花、すべての昆虫、すべての動物、すべての人々、すべての建物...すべての個体は実際には異なっており、その違いの中にはかなり大きなものもあります。すると、私たち人間は、これらの客観的な事物を認識し、記憶する過程で、その量があまりにも膨大で耐えられないほどに、極度の苦痛を味わうことになるのです。 だからこそ、人間は世界を「下から」理解する過程で、帰納法と分類法を「怠惰に」選択するのです。この「怠惰な」方法は、人間が生まれながらに持っている方法であることに注意してください。 私たちも、幼いころに親から絵を見ながら話すことを教わったときに同じような経験をしました。絵の中に猿がいたので、それが猿だと分かりました。絵の中に車がいたので、それが車だと分かりました... 街に出たり動物園に行ったりすると、猿は写真と同じではなく、見た目が違う猿がたくさんいることに気づきます。私たちは猿を一つずつ新しいものとして知っていくのでしょうか。車を見ても同じです。大きさ、色、スタイル、クラクションの音まで、すべてがまったく異なります。私たちの目には新しいものに見えるでしょうか?いいえ、それらは依然として車です。 これらは確かに異なりますが、私たちの認識に大きな問題を引き起こすでしょうか?いいえ。私たちは、猿と車を同じ種類のものとは決して考えません。猿はそれぞれ異なりますが、体格、毛、行動、さまざまな形状から、これらの異なる種類の猿が同じ大きなカテゴリの動物であると考えられます。車と混同することは言うまでもなく、犬、馬、熊などの脊椎動物とは簡単に区別できます。
人間は、一般化して要約する能力を持って生まれます。私たちは、似たような物事をまとめて、それらを 1 つのカテゴリの物事として認識することができます。それらは互いに異なっていてもかまいませんが、私たちの心には「限界」があります。この限界内であれば、特性のわずかな違いは大したことではなく、それらは依然として同じカテゴリの物事です。 このカテゴリの物事の中にも同じ現象が存在します。つまり、一部の個体は互いに比較的類似しており、個体の別の部分も互いに比較的類似しています。私たち人間は、個体のこの 2 つの部分の違いを依然として明確に認識できるため、この部分は、認識のために大きなカテゴリ内で 2 つの異なる部分に再分割されます。例えば、自動車は外見によってセダン、トラック、バンなどに分けることができます。昆虫も外見によって飛翔昆虫、爬虫類、毛虫などに簡単に区別できます。 誰かが具体的にさまざまな小さな集団の名前や特徴を教えてくれる前から、私たちは自然に、同じまたは類似した特徴的形態に基づいてそれらを 1 つの概念に分類し、特徴的形態の違いに基づいて異なる概念に分類するという主観的な認知能力を備えています。これ自体がクラスタリングの考え方です。 より一般的に使用されるクラスタリング アルゴリズムには、K-Means、DBSCAN などがあります。基本的な考え方は、各ベクトル間の「距離」を使用することです。ここでは、空間内のユークリッド距離またはマンハッタン距離を指します。距離に基づいて、それぞれが同じカテゴリに属するのがより適切であるかどうかの分類判断を行うことができます。 1D サンプルが 3 つあり、1 つは 180、1 つは 179、1 つは 150 であるとします。これらの 3 つのベクトルを 2 つのカテゴリに分割する場合、180 と 179 は 1 つのカテゴリに、150 は 1 つのカテゴリにする必要があります。その理由は、180 と 179 の間の距離は 1 であるのに対し、180 と 179 はそれぞれ 150 から 30 単位と 29 単位離れているためです。これは、肉眼で見ても非常に遠い距離です。学習に機械を使用すると、アルゴリズムを通じてこれらのベクトル間の距離を自動的に認識し、互いに近いものをグループ化して他のクラスターと区別することもできます。 クラスター学習にマシンを使用する場合、各アルゴリズムには、互いに「類似」しているように見えるさまざまな入力ベクトルを 1 つのグループにグループ化できる対応する計算原理があります。そして次のステップでは、通常、各オブジェクト グループの共通の特性と、各グループから離れた孤立したポイントをよりターゲットを絞った方法で調査します。このような孤立したポイントの研究は、犯罪捜査や特殊な病気のスクリーニングなどに応用されています。 このプロセスでは、特定のサンプルベクトルの取得からクラスタリング結果の取得まで、人が介入する必要はありません。これが「教師なし」という用語の由来です。 2. 回帰 回帰は問題解決方法、つまり「学習」方法であり、機械学習における重要な概念でもあります。 回帰を表す英語は Regression です。regress という単語の本来の意味は、おおよそ「後退、退化、逆戻り」です。実際、Regression - regression analysis の意味は、「後退、逆戻り」の意味から借用されています。簡単に言えば、それは「結果から原因を探す」プロセスであり、一種の帰納的思考です。つまり、特定のパターンで提示された多数の事実を見ると、そこに暗示されている原因または客観的な関係を推測します。また、特定のパターンで観察から得られた多数のベクトル (数値) を見ると、それらの間の暗示されている関係を説明する仮説を立てます。 機械学習の分野では、最も一般的に使用される回帰は、線形回帰と非線形回帰の 2 つのカテゴリに分けられます。 いわゆる線形回帰とは、サンプルを観察して要約するプロセスにおいて、ベクトルと最終的な関数値が線形関係を示すと想定されることを意味します。次に、この関係を次のように設計します。 y = f(x) = wx + b ここで、w と x はそれぞれ 1×n と n×1 の行列であり、wb はこれら 2 つの行列の内積を表します。より具体的には、たとえば、実験で患者のいくつかの指標が線形関係を示していることが観察された場合 (これは一般的な前提であることに注意してください。関係が線形ではないことが観察され、線形モデルを使用してモデル化すると、適合不足の結果が得られます)。 得られた x は 5 次元ベクトルで、患者の年齢、身長、体重、血圧、血中脂質値を表します。y ラベルは血糖値を表す指標値です。x と y はどちらも観測値です。多数のサンプル(つまり、多数の x と y)を取得した後、ベクトル(年齢、身長、体重、血圧、血中脂質)と関連する血糖値 y 値には次の関係があると推測します。 y=w1×年齢+w2×身長+w3×体重+w4×血圧+w5×血中脂肪+b 次に、各患者の特定のベクトル値(年齢、身長、体重、血圧、血中脂質)と血糖値の y 値を入力します。このように、すべての患者データを入力すると、一連の 6 変数線形方程式が表示され、未知の変数は w1 ~ w5 と b、つまり w 行列の内容とバイアス b の内容になります。次に必要なのは、w 行列の内容とバイアス b に対して最も「適切な」ソリューションを見つけることです。 「フィット」の概念は、グローバル スコープで f(x) によってマッピングされた y と実際に観測された y の差の合計を取得することであり、次のように記述できます。 この損失の意味をどのように理解していますか?右 これは加算を表し、ループを実行することと同等です。i は、トレーニング セット内のすべてのサンプル ベクトルをカバーする 1 から n までのループ変数です。追加されるのは、wxi+b と yi の差です。これは、各トレーニング ベクトル xi と、先ほど想定した関係 f(x)=wx+b を通じてマッピングされた後の実際の観測値 yi の差です。絶対値を取る意味は、ギャップが観測値より大きくても小さくても、それは同じギャップであるということです。グローバルスコープ内の n 個のギャップ値を合計し、それを合計ギャップ値と呼びます。これが意味するところです。 このマッピング関係において w と b が理想的である場合、各 x はマッピング後の観測値と「完全に」一致するため、ギャップ値は 0 になるはずです。この状況は理想的すぎるため、実際のアプリケーションでは見られません。ただし、損失が小さいほど、マッピング関係の記述は正確になり、非常に直感的になります。そこで、損失を次のように説明してみましょう。 損失=f(w, b) 次に、対応する方法を使用して、損失が可能な限り小さくなるように w と b の値を見つければ完了です。コンピュータがどのようにしてこの種の解を見つけるかについては後ほど説明します。心配しないでください。方程式を同時に解かなくても方法はあります。十分に小さい誤差で w と b を取得し、検証データセットの現在の要件を満たす精度を達成できれば、作業は完了です。たとえば、患者の血糖値を予測する際の平均誤差は、許容上限の 0.3 以下です。トレーニング後、検証セットのパフォーマンスは平均誤差 0.2 となり、適格とみなされます。 従来の機械学習では、回帰や分類などのアルゴリズムには、取得したデータセットをトレーニング セットと検証セットに分割するプロセスが含まれることに注意してください。トレーニング セット データはトレーニングと関係性の要約に使用し、検証セット データは検証に使用してオーバーフィッティングを回避します。オーバーフィッティングの意味がよくわからなくても大丈夫です。後で説明しますので、心配しないでください。データ セットは 3:7 または 2:8 の比率に分割できます。この比率は一般に実稼働環境で使用されます。いずれの場合も、トレーニング セットではデータが多い部分が使用されます。 この仮説では入力xベクトルとラベル値yはy=f(x)=wx+bという線形関係にあるため、線形回帰と呼ばれます。最も一般的な形式は y=f(x)=ax+b です。つまり、x は 1 次元ベクトルであり、w も 1 次元ベクトルです。指数関係や対数関係などの他の関係を示す場合、線形回帰を使用して適合させると、損失関数が非常に大きくなり、検証セットに表示されるエラーも非常に大きくなることがわかります。これはアンダーフィッティングの現象であり、これについても後で説明します。まずはこの用語を学びましょう。 非線形回帰の中でも、ロジスティック回帰は機械学習の分野で最も広く使用されています。ロジスティック回帰と線形回帰はどちらも回帰と呼ばれますが、ロジスティック回帰は分類に似ています。まず、回帰セクションでこの回帰がどのように機能するかについて説明します。先ほど説明した線形回帰とは異なり、このモデルでは、観察者は y には 1 と 0 の 2 つの値、つまり「はい」または「いいえ」の判断しかないと想定します。 ここでの wx+b は、前の線形回帰で説明した wx+b と同じ概念です。どちらも、w 行列と x の内積、および内積とバイアス b の合計を指します。 z=wx+b が設定されている場合、回帰分類モデル式は次のように書き直すことができます。 関数グラフは次のとおりです。 水平軸は z で、垂直軸は y です。このようなマッピングを 2 回行うと、最終的に多次元 x が y に投影され、1 と 0 の値のみを持つ二項分布になります。それが先ほど言った「はい」か「いいえ」の分類を作成することです。 トレーニング プロセスは、損失関数の形式が異なることを除いて、通常の線形回帰と同じです。しかし、その損失関数の意味は、依然として、フィッティング残差と未知の係数の関係を表現し、対応する手段を通じて反復的な最適化を実行し、最終的に未知の係数を徐々に調整することによって残差を減らすことです。ロジスティック回帰の式の定義はベルヌーイ分布に由来します。後ほど比較的詳しい説明をしますが、ここではまず感覚的に理解しておきましょう。 3. 分類 分類は機械学習で最も一般的に使用されるアルゴリズムの種類であり、通常、分類アルゴリズムは「分類子」と呼ばれます。 この発言は実は非常に鮮明です。私たちの見解では、これは入口と出口があるブラックボックスです。入力に「サンプル」を投入し、出力に分類された「ラベル」を取得することを期待します。 たとえば、分類器は画像の内容を分類してラベル付けすることができます。トラの写真を「入口」に投げ込むと、「出口」に「トラ」のような説明ラベルが付きます。また、飛行機の写真を「入口」に投げ込むと、「出口」に「飛行機」のような説明ラベルが付きます。これが分類器の最も基本的な分類プロセスです。
分類器モデルは、誕生したばかりの(初期化された)時点では、実際にはこの機能を持っていません。この機能を持たせる唯一の方法は、大量の画像と、それに対応するラベル分類を与え、分類器モデルが自ら完全に要約・一般化できるようにすることです。 先ほど見たロジスティック回帰法で、すでにいくつかの手がかりが見えてきました。ロジスティック回帰は、非線形に近似される点で通常の線形回帰とは異なります。最終出力「ラベル値」は実数変数ですが、最終的な分類結果は「はい」(1) または「いいえ」(0) の確定値になることが予想されます。他のさまざまな分類器の出力は通常は離散変数であり、非線形の分類特性を示すことがよくあります。 分類器に学習方法を教えるコードを書くとき、実際には入力から出力へのマッピング ロジックを確立する方法を教え、この論理関係を分類器自身で調整してロジックをより合理的なものにします。 妥当かどうかの判断も非常に明確で、リコール率と適合率という 2 つの指標があります。リコール率は、取得された関連サンプルとサンプル ライブラリ (テスト対象のオブジェクトのライブラリ) 内のすべての関連サンプルの比率を指し、分類器のリコール率を測定します。精度は、取得された関連サンプルの数と取得されたサンプルの合計数の比率であり、分類器の精度を測定します。 具体的には、例えば、1,000 サンプルのトレーニング セットがあり、これは 1,000 枚の写真で、そのうち 200 枚は猫、200 枚は犬、600 枚はウサギで、合計 3 つのカテゴリに分かれています。各写真をベクトル化し、ラベルを追加します
これは x と y の対応関係に相当し、トレーニングのためにトレーニング セットに入力されます (ただし、ここでのラベル 0、1、2 は実数定義ではなく、通常はワンホット エンコーディングで表される離散ラベル定義です)。複数回のトレーニングを経て、分類器は論理関係を比較的安定したレベルに調整し、この分類器を使用して 200 匹の猫、200 匹の犬、600 匹のウサギを分類しました。発見する: 200枚の猫の写真のうち、180枚は猫であると正しく識別されましたが、20枚は犬であると誤って識別されました。 200枚の犬の写真はすべて犬であると正しく識別できます。 600 枚のウサギの画像のうち、550 枚はウサギとして正しく識別され、30 枚は猫と誤認され、20 枚は犬と誤認されました。 驚かないでください。すべての機械学習またはディープラーニングトレーニングプロジェクトでは、誤判定率をなくす方法はほとんどありません。可能な限り最も科学的な手段を使用することによってのみ、誤判定率を減らすことができます。機械にとって難しすぎることはしないでください。実際、画像のサイズ、画像の鮮明度、光の明るさに大きな違いがある場合、すべての情報が 100% 正しいことを人間が保証することはできませんよね?言うまでもなく、機械ではそれ以上のことはできません。 リコール率と精度について説明しましょう。先ほどの例で言うと、合計 1,000 枚の写真のうち 200 枚は猫ですが、正しく識別されたのは 180 枚だけなので、猫のリコール率は 180÷200=90% です。ウサギは 600 匹のうち 550 匹が正しく識別されたので、ウサギのリコール率は 550÷600≈91.7% です。このように計算します。 1,000 枚の写真の中で、犬を検索すると、犬の写真は 240 枚取得されます。そのうち 200 枚は実際に犬で、20 枚は猫と誤認され、20 枚はウサギと誤認されます。つまり、240 枚のうち、犬の正しい写真は 200 枚だけです。すると、犬の正解率は 200÷240≈83.3% になります。どうでしょう、この 2 つの概念は理解するのが難しくありません。 分類トレーニング プロセスは回帰トレーニング プロセスと同じであり、非常に日常的な手順です。
これら 4 つのステップに注目してください。上記では、最も単純な機械学習の例から最も一般的な科学的プロセスをまとめました。このプロセスは広く使用されており、他の機械学習シナリオでも正常に実装できます。 これは分類器のトレーニングと作業プロセスです。分類器の動作プロセスは非常に単純なように思えますが、人間の知的行動は実際には非常に洗練された、または完璧な分類器であることを知っておく必要があります。彼は、テキスト、音、画像、あるいは寒さ、暑さ、チクチク感、痒みなどの言葉では言い表せない刺激など、極めて複雑で抽象的な入力コンテンツを処理することができ、比較的短時間で、返答、同意、コメント、叫ぶ、笑うなどの反応や喜び、怒り、悲しみ、幸せの表現など、妥当な出力を行うことができます。 定義の観点から見ると、人間は実は非常に複雑で知的な分類者です。しかし、業界で使用されている分類器は、通常、非常に偏っていてニッチであり、1 つまたは少数のものだけを研究する「専門的な」分類器です。これは、人間の分類能力とは大きく異なります。
4. 包括的なアプリケーション これまで見てきた機械学習アプリケーション環境のほとんどは非常にシンプルで、ベクトルはクリーン化され、境界は明確に定義されています。 たとえば、スパム仕分けでは、メールの内容を入力することで、それがスパムかどうかを判断できます。自動ニュース分類では、内容を分類することで、ニュースのカテゴリや説明内容の属性を判断できます。カメラでは、OCR 電子認識やナンバープレート番号の手書き認識を使用できます。これらのアプリケーションでは、画像を入力することで、画像に含まれるテキスト情報ベクトルを取得できます。これらは、初期のアプリケーションが比較的成熟していた分野です。このようなアプリケーション シナリオでは、学習を通じて、機械が純粋な肉体労働の一部を置き換えることができます。 近年、コンピュータの性能向上、特にGPU並列コンピューティングの普及により、高密度コンピューティングの多くのシナリオの敷居はますます低くなっています。商業分野の人々は、これまで想像もできなかったことを実現するためにディープラーニングネットワークを求め始めています。 たとえば、この方法では、畳み込みニューラル ネットワークを使用して写真のスタイルを処理します。通常の写真を入力として受け取り、次に芸術的なスタイルの強い絵画を受け取り、それを畳み込みネットワークで処理します。最終的に、コンピューターは、内容は写真に基づいているがスタイルは絵画に基づいている新しい作品を「作成」します。このようなことは、数年前には想像もできなかったでしょう。あまりにも「スマート」で「創造的」に思えたからです。 これと似たようなものもあり、写真を入力すると、コンピューターが写真のスタイルと内容に基づいて、似ているが異なる写真をゼロから作成します。この機能は Photoshop とはまったく異なり、完全に自動化されていることに注意してください。これらの写真のうち、右側のものはソース写真であり、左側のものは水の波紋、雲、花、ランダムな芸術的な落書きなどを含むコンピューター生成写真です。どう思いますか?本物と間違えるほどリアルなものが多数あります。これらはすべて、ディープニューラルネットワークを使用した処理の結果です。 さらに、音声認識やビデオ内のオブジェクト検出などの分野も、最近研究が進み、徐々に成熟しつつある人気のアプリケーション分野です。実際、このようなアプリケーションを実装する方法はたくさんあります。 学術分野では、「敵対的学習」と呼ばれるディープラーニングニューラルネットワークに基づく新たな研究分野もあり、同様の効果を達成することができます。ディープラーニングの分野では、「Generative Adversial Network」というネットワークを使います。このネットワークの特徴は、単純にラベルを生成するのではなく、複雑なコンテンツを生成できる点です。 |
<<: 実践的 | この記事は、ディープラーニングをゼロから始めるのに役立ちます
>>: AI人材の競争は軍拡競争となっている。AIの創造性競争に賭けるAI大手の中で、勝利のポイントを獲得するのはどれだろうか?
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
ほとんどの CIO は、自社のビジネスがテクノロジーのトレンドに追いつくために GenAI の検討を...
現在、GPT-4 であれ、Llama 2 などの大規模言語モデルであれ、その背後にあるメカニズムは人...
真の人工知能技術がまだ成熟していないため、人間が自律知能に対して想定するリスクは、高度な知能を持つロ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
CyberArk の 2023 年アイデンティティ セキュリティ脅威ランドスケープ レポートでは...
AI がリーダーシップ能力を強化できるとしたらどうでしょうか? チームをより深く理解し、チームのニー...
ほんの数年前までは、マーケティングに特化した AI エンジンがマーケティングの未来につながると信じて...
[[405016]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
自動評価および安全性プラットフォームである Patronus AI は、大規模言語モデル (LLM)...
ChatGPT は、大規模言語モデル (LLM) に基づく業界をリードするチャットボットとして、テク...