Kerasディープラーニング第4章(機械学習の基礎)

4.1機械学習の4つのブランチ

4.1.1教師あり学習

教師あり学習は、現在最も一般的なタイプの機械学習です。サンプルのセット(通常は手動でラベル付けされている)が与えられると、入力データを既知のターゲットにマップすることを学習できます[注釈とも呼ばれます]。
画像ドメインでの教師あり学習は、次のように分けられます。
オブジェクト検出:
画像を指定して、画像内の特定のターゲットの周囲に境界ボックスを描画します。この問題は、分類問題(複数の候補境界ボックスが与えられた場合、各ボックスでターゲットを分類する)または分類と回帰の共同問題(ベクトル回帰を使用して境界ボックスの座標を予測する)として表すこともできます。
**画像のセグメンテーション:**画像を指定して、特定のオブジェクトにピクセルレベルのマスクを描画します。
4.1.2教師なし学習
教師なし学習とは、ターゲットなしで入力データの興味深い変換を見つけることを指します。その目的は、データの視覚化、3データ圧縮、データのノイズ除去、またはデータの相関関係のより良い理解です。次元削減とクラスタリングはどちらも、よく知られている教師なし学習方法です。
4.1.3
教師あり学習教師あり学習は、教師あり学習の特殊なケースであり、独自のものであり、別のカテゴリに値します。教師あり学習とは、人間がラベルを付けたラベルのない教師あり学習であり、人間の関与がない教師あり学習と考えることができます。ラベルはまだ存在しますが(学習プロセスを監視するものが常にあるため)、通常はヒューリスティックアルゴリズムを使用して、入力データからラベルが生成されます。
たとえば、オートエンコーダは自己教師あり学習のよく知られた例であり、生成されるターゲットは変更されていない入力です。
教師あり学習、自己教師あり学習、教師なし学習の区別があいまいになる場合があることに注意してください。これらの3つのカテゴリは、明確な境界のない連続体のようなものです
。4.1.4いくつかの用語の強化学習

用語の分類と回帰の用語集分類と回帰には、多くの専門用語が含まれています。あなたはすでにいくつかの用語を見たことがあります、そしてあなたは次の章でもっと出くわすでしょう。これらの用語には、機械学習の分野で正確な定義があり、これらの定義を理解する必要があります。
サンプルまたは入力:
モデルに入力されるデータポイント。
予測または出力:
モデルからの結果。
**ターゲット:**真の値。外部データソースの場合、理想的には、モデルはターゲットを予測できる必要があります。
予測誤差または損失値:
モデル予測とターゲットの間の距離。
クラス:
分類問題で選択するためのタグのセット。たとえば、猫と犬の画像を分類する場合、「犬」と「猫」は2つのカテゴリになります。
ラベル:
分類問題におけるカテゴリラベルの特定の例。たとえば、画像1234がカテゴリ「犬」を含むものとしてラベル付けされている場合、「犬」は画像1234のラベルです。
グラウンドトゥルースまたは注釈:
データセットのすべてのターゲット。通常は手動で収集されます。
二項分類:
各入力サンプルを2つの相互に排他的なカテゴリに分割する必要がある分類タスク。
マルチクラス分類:
手書きの数字分類など、各入力サンプルを3つ以上のカテゴリに分割する必要がある分類タスク。
マルチラベル分類:
各入力サンプルに複数のラベルを割り当てることができる分類タスク。たとえば、画像に猫と犬の両方が含まれている可能性がある場合は、「cat」タグと「dog」タグを同時にマークする必要があります。通常、画像ごとのタグの数は可変です。
スカラー回帰:
目標は、連続スカラー値のタスクです。住宅価格の予測は良い例です。異なる目標価格が連続した空間を形成します。
ベクトル回帰(ベクトル回帰):
目標は、一連の連続値(連続ベクトルなど)タスクです。複数の値(画像の境界ボックスの座標など)で回帰を実行する場合、それはベクトル回帰です。
ミニバッチまたはバッチ:
モデルによって同時に処理されるサンプルのごく一部(サンプルの数は通常8〜128です)。サンプル数は通常2の累乗であり、GPUでのメモリ割り当てが容易になります。トレーニング中、ミニバッチを使用して、モデルの重みの最急降下法の更新を計算します。

4.2機械学習モデルを評価する

過剰適合の定義:トレーニングが進むにつれて、トレーニングデータのモデルのパフォーマンスは常に向上しますが、前例のないデータのパフォーマンスは変化しないか、低下し始めます。
4.2.1トレーニングセット、検証セット、およびテストセット
ハイパー
パラメータの概念:通常は事前に設定され、トレーニングの変更に応じて調整されないパラメータ。
一般に、ハイパーパラメータは、ネットワークパラメータ、最適化パラメータ、正則化パラメータの3つのカテゴリに分類できます。

ネットワークパラメータ:ネットワーク層と層の間の相互作用(加算、乗算、連結など)、畳み込みカーネルの数と畳み込みカーネルのサイズ、ネットワーク層の数(深さとも呼ばれます)を参照できますおよび活性化関数など。

最適化パラメーター:一般に、学習率(学習率)、バッチサイズ(バッチサイズ)、さまざまなオプティマイザーのパラメーター、および損失関数のいくつかの調整可能なパラメーターを指します。

正則化:重量減衰係数、ドロップアウト率(ドロップアウト)
これらのパラメーターを調整する必要があります。リソース使用率の向上:ハイパーパラメータ調整戦略
2つの部分からなるトレーニングセット、テストセットではなく、3つの部分からなるトレーニングセット、検証セット、およびテストセットに分割する必要があります。トレーニングセットをトレーニングしてから、検証セットを使用して検証します。検証セットのパラメータに応じてネットワークを調整し(ハイパーパラメータを変更)、検証セットとトレーニングセットを調整します。より良い結果が得られるため、実際にはデータ漏洩が発生しました。このセットアップモデルは、トレーニングセットと検証セットにのみ適用できる場合があります。したがって、新しいセット(テストセット)を分離し、テストセットを使用してテストします。
この本は、これまで使用されたことがないように思われるK分割交差検定を改善します。記録はありません。
注意すべきことの1つは、これら3つのセットが再び重複してはならないということです。

4.3データ前処理、機能エンジニアリング、機能学習

ベクトル化
ニューラルネットワークのすべての入力とターゲットは、浮動小数点テンソルである必要があります(場合によっては、整数テンソルにすることもできます)。処理されるデータ(音声、画像、テキスト)に関係なく、最初にテンソルに変換する必要があります。このステップは、データのベクトル化
**値の正規**と呼ばれます
最初に、画像データは次の整数としてエンコードされます0〜255の範囲。グレー値を表します。このデータをネットワークに入力する前に、データをfloat32形式に変換し、255で除算して0から1の範囲を取得する必要があります。
一般的に言えば、比較的大きな値のデータ(ネットワークの重みの初期値よりもはるかに大きい複数桁の整数など)または異種データ(たとえば、データの1つの特徴は0〜の範囲にあります) 1、およびその他の機能(100〜200の範囲)ニューラルネットワークへの入力は安全ではありません。これを行うと、勾配の更新が大きくなる可能性があり、その結果、ネットワークの収束に失敗します。ネットワークの学習を容易にするために、入力データは次の特性持つ必要があります
値が小さい:
ほとんどの値は0〜1の範囲内である必要があります。
同種:
すべての機能の値はほぼ同じ範囲内にある必要があります。
さらに、以下のより厳密な標準化方法も一般的で有用ですが、必ずしも必要ではありません(たとえば、番号分類の問題に対してこれを行う必要はありません)。
平均値が0になるように、各機能を個別に標準化します。
標準偏差が1になるように、各機能を個別に標準化します。

4.3.2機能エンジニアリング

特性を定量的に説明する方法。それはおそらくこれを意味します。

4.4過剰適合と過適合

機械学習の根本的な問題は、最適化と一般化の間の対立です。最適化とは、トレーニングデータ(つまり、機械学習での学習)で最高のパフォーマンスが得られるようにモデルを調整することを指し、一般化と
は、前例のないデータでトレーニングされたモデルのパフォーマンスを指します。
トレーニングデータの損失が小さいほど、テストデータの損失は小さくなります。この時のモデルはアンダーフィットです。つまり、まだ改善の余地があり、ネットワークはトレーニングデータ内のすべての関連パターンをまだモデル化していない。しかし、トレーニングデータを一定回数繰り返した後、一般化は改善されず、検証インデックスは最初は変更されず、次に劣化し始めます。つまり、モデルが過剰適合し始めます。この時点で、モデルはトレーニングデータにのみ関連するパターンの学習を開始しますが、このパターンは間違っているか、新しいデータとは無関係です。
過剰適合を減らすこの方法は正則化と呼ばれ、次のようなものがあります。

4.4.1ネットワークサイズ
縮小して過剰適合防ぐ最も簡単な方法は、モデルサイズを縮小することです。つまり、モデル内の学習可能なパラメーターの数を減らすことです(これは、レイヤーの数とユニットの数によって決まります。したがって、損失を最小限に抑えるために、ネットワークは、ターゲットの強力な予測力を備えた圧縮表現を学習する必要があります。これは、まさに私たちが関心を持っているデータ表現です。同時に、使用するモデルには、適合不足を防ぐのに十分なパラメータが必要であることに注意してください。つまり、モデルはメモリリソースの不足を回避する必要があります。
妥協点を見つけるための過剰な容量と不十分な容量の間のボリューム

この本では、いくつかの実験が行われてい
ます。Dsenseの出力機能マップのレイヤー数を減らし、小規模なネットワークが過剰適合を開始するまでの時間は、元のネットワークよりも遅くなります。
次に、本ではより大きなネットワークが使用され、出力フィーチャマップのレイヤー数は512になります。結論:
より大きなネットワークは、1ラウンドだけでオーバーフィットを開始し、オーバーフィットはより深刻になります。その検証損失のボラティリティも大きくなります。
4.4.2重みの正則化の追加
オッカムの剃刀の原理をご存知かもしれません。ある事柄について2つの説明がある場合、最も正しい説明は最も単純な説明、つまり仮定が少ない説明です。この原則は、ニューラルネットワークによって学習されたモデルにも適用されます:いくつかのトレーニングデータとネットワークアーキテクチャが与えられると、重み値の多くのセット(つまり、多くのモデル)がこれらのデータを説明できます。単純なモデルは、複雑なモデルよりも過剰適合しにくいです。

ここでの単純なモデルとは、パラメーター値分布のエントロピーが小さいモデル(または、前のセクションの例のように、パラメーターが少ないモデル)を指します。過剰適合を減らす一般的な方法は、モデルの重みに小さな値のみを強制することです。これにより、モデルの複雑さが制限され、重み値の分布がより規則的になります。この方法は、重みの正則化(重みの正則化)と呼ばれます。

L1正則化:
追加コストは、重み係数の絶対値[重みのL1ノルム(ノルム)]に比例します。
L2正則化:
追加されたコストは、重み係数の2乗(重みのL2ノルム)に比例します。ニューラルネットワークのL2正則化は、重み減衰とも呼ばれます。異なる名前と混同しないでください。重みの減衰とL2正則化は数学的に同じです。追加コストは、重み係数の絶対値[重みのL1ノルム(ノルム)]に比例します。

from keras import regularizers model = models.Sequential()
model.add(layers.Dense(16, kernel_regularizer=regularizers.l2(0.001), activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, kernel_regularizer=regularizers.l2(0.001), activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

l2(0.001)は、この層の重み行列の各係数がネットワークの総損失を0.001 * weight_cofactory_value増加させることを意味します。このペナルティ項目はトレーニング中にのみ追加されるため、このネットワークのトレーニング損失はテスト損失よりもはるかに大きくなることに注意してください。
結論として
ここに画像の説明を挿入

from keras import regularizers 
regularizers.l1(0.001) L1 正则化
regularizers.l1_l2(l1=0.001, l2=0.001)同时L1,L2正则化

4.4.3ドロップアウト正則化の追加ドロップ
アウトは、ニューラルネットワークで最も効果的で一般的に使用される正則化手法の1つであり、トロント大学のGeoffreyHintonと彼の学生によって開発されました。レイヤーでドロップアウトを使用すると、トレーニングプロセス中にレイヤーの出力機能の一部がランダムに破棄されます(0に設定)

model = models.Sequential() model.add(layers.Dense(16, activation='relu', input_shape=(10000,))) model.add(layers.Dropout(0.5))
model.add(layers.Dense(16, activation='relu')) model.add(layers.Dropout(0.5))
model.add(layers.Dense(1, activation='sigmoid'))

4.5機械学習の一般的なワークフロー

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/ALZFterry/article/details/109811605