ホームページ > バックエンド開発 > Python チュートリアル > ディープラーニングの必需品

ディープラーニングの必需品

Susan Sarandon
リリース: 2024-11-15 10:53:02
オリジナル
667 人が閲覧しました

これは、データ内の複雑なパターンをモデル化して理解するために、多くのレイヤーを持つニューラル ネットワークを使用することに重点を置いた機械学習のサブセットです。

ニューラル ネットワークは、予測誤差に基づいてニューロン間の接続の重みを調整することでデータから学習するように設計された機械学習アルゴリズムの一種です。

ニューロン

ニューラルネットワークの基本単位は人工ニューロンで、多くの場合単にニューロンと呼ばれます。人工ニューロンは人間の脳の生物​​学的ニューロンからインスピレーションを受けており、ネットワーク内で小規模で特定の計算を実行する役割を果たします。

1) 各ニューロンは 1 つ以上の入力を受け取り、それらを処理し (多くの場合、数学関数を適用して)、出力を生成します。

2) ニューロンは通常、非線形性を導入するために、活性化関数が後に続く入力の重み付き合計を適用します。この関数の出力は、ネットワークの次の層に渡されるか、出力層にある場合は最終出力として機能します。

パーセプトロン(単層ネットワーク)

入力: パーセプトロンは、それぞれが浮動小数点数で表される複数の入力を受け取ります。

重み: 各入力には、対応する重みが乗算されます。これも浮動小数点数です。重みによって、意思決定プロセスにおける入力の重要性が決まります。

合計: 次に、重み付けされた入力が合計されて、単一の値が生成されます。

しきい値 (またはバイアス): パーセプトロンは合計の結果をしきい値と比較します

出力:

合計が 0 (またはしきい値) より大きい場合、パーセプトロンは 1 (または一部のバージョンでは 1) を出力します。

合計が 0 以下の場合、パーセプトロンは -1 (バージョンによっては 0) を出力します。

(注: パーセプトロンは、線形分離可能な問題の解決に限定されています。つまり、直線で分離できるデータのみを分類できます)

最も興味深い問題、さらには非常に単純な問題も、パーセプトロンの解決能力を超えていることが証明されました。およそ 1970 年代から 1990 年代まで続いたこの期間は、AI の冬と呼ばれました

AI冬

この時期は、エキスパート システムなどの初期の AI テクノロジーに対する失望によって特徴付けられ、スケーラビリティや現実世界への応用に苦労しました。その結果、政府や組織からの資金が枯渇し、AIの研究は大幅に減速しました。

AI の冬の後の最新のニューラル ネットワーク

1) 変更 1:
これは、バイアスと呼ばれる追加の入力を追加することです。他の入力とは異なり、バイアスは外部データや以前のニューロンからの出力には結び付けられません。

バイアスは、重み付けされた入力の合計に直接追加される定数値です。これは各ニューロンが持つ個別のパラメーターとして機能し、入力値とは独立して出力を調整するのに役立ちます。

2) 変更 2:
単に合計をしきい値と比較して -1 または 1 を出力する代わりに、数学関数 を通して合計 (バイアスを含む) を渡すことができます。この関数は、特定の範囲内の任意の場所にある新しい浮動小数点値を出力します

活性化/数学/伝達関数
ニューロンが受け取る入力に基づいて、ニューロンがどの程度「アクティブ」になるかを決定します。多くの活性化関数は非線形性を導入し、ネットワークが非線形関係を学習できるようにします。これは、より複雑な問題を解決するために不可欠です。

シグモイド関数: 0 から 1 までの値を出力します。二値分類問題に役立ちます。

Tanh (双曲線正接) 関数: -1 から 1 までの値を出力します。シグモイドに似ていますが、中心が 0 になります。

ReLU (整流線形単位): 入力が正の場合は出力し、それ以外の場合は 0 を出力します。

Leaky ReLU: ReLU に似ていますが、入力が負の場合に小さなゼロ以外の勾配を許可し、「瀕死の ReLU」問題の回避に役立ちます。

Deep Learning Essentials

活性化関数の種類:

1) 直線関数

a.アイデンティティ関数:
恒等関数は、出力が入力と正確に等しい直線関数です。
f(x)=x

b.線形関数:
線形関数は、直線として表すことができる関数です。
f(x) = mx b

2) ステップ関数

a.階段関数:
階段関数は、特定の入力値で急激に変化する複数の線形セグメントで構成されます。滑らかな曲線ではなく、離散的なジャンプが特徴です。

0 から 0.2 未満の入力に対して 0 を出力し、0.2 から 0.4 未満の入力に対して 0.2 を出力する関数。

Deep Learning Essentials

b.単位ステップ関数:
入力値が閾値未満の場合は 0 を出力し、入力値が閾値以上の場合は 1 を出力します。

Deep Learning Essentials

c.ヘビサイド関数:

3) 区分的線形関数

a. ReLU (整流線形ユニット)

関数定義:
x≥0 の場合:
f(x)=x
x f(x)=0

Deep Learning Essentials

b. Leaky ReLU

関数定義:
x≥0 の場合:
f(x)=x
x f(x)=αx (αは小さな定数、例えば0.01)

Deep Learning Essentials

c.パラメトリック ReLU (PReLU)
関数定義:
x≥0 の場合:
f(x)=x
x f(x)=αx (αは学習可能なパラメータ)

4) スムーズなアクティベーション機能

a. ソフトプラス機能
これは ReLU 関数の滑らかな近似です。連続的かつ微分可能な代替手段を提供することで、ゼロでの急激な遷移に対処します。
ソフトプラス(x) = ln(1 ex)

b.シグモイド関数
シグモイド関数は入力値を 0 から 1 までの範囲に押し込みます
σ(x)= 1 / 1 e−x

c.双曲線正接 (tanh) 関数
Tanh 関数はシグモイドと似ていますが、入力値を範囲 [−1,1] に押し込みます。ゼロを中心とするため、データの正規化に役立ちます。
Tanh(x)=ex e−x
/ex−e−x

ソフトマックス関数

ソフトマックス関数は、特に複数のクラスの確率を予測することが目的の場合、ニューラル ネットワーク内の分類タスクにおいて重要なコンポーネントです。

Softmax は、出力ニューロンからの生の出力スコア (ロジットと呼ばれることが多い) をクラス全体の確率分布に変換します。各出力値は、すべてのクラスの合計が 1 になる確率に変換されます。

Deep Learning Essentials

Deep Learning Essentials

多層ニューラルネットワーク

1) フィードフォワードニューラルネットワーク
フィードフォワード ネットワークは、ニューロン間の接続がサイクルを形成しない人工ニューラル ネットワークの一種です。言い換えれば、データはループバックせずに、入力から出力へ一方向に流れます。

構造:
フィードフォワード ネットワークは、入力層、1 つ以上の隠れ層、出力層の層に編成されます。

各ニューロンは前の層から入力を受け取り、これらの入力に重みを適用して合計し、バイアス項を追加して、結果を活性化関数に渡して出力を生成します。

フィードフォワード ネットワークの種類:

単層パーセプトロン:
入力層と出力層のみを備えたフィードフォワード ネットワークの最も単純な形式
元。データが線形分離可能なバイナリ分類問題に使用されます。

多層パーセプトロン (MLP):
入力層と出力層の間に 1 つ以上の隠れ層が含まれています。
元。分類、回帰、関数近似などのタスクで使用されます。

放射基底関数 (RBF) ネットワーク
隠れ層の活性化関数として放射基底関数を使用します。
元。関数近似とパターン認識に使用されます。

アプリケーション:
画像認識
音声認識
医学的診断

ネットワークの深さ

データが入力から出力まで通過するレイヤーの数です。入力層と出力層(入力層を除く)の間の層です。ネットワークの深さは、これらの隠れ層の数によって決まります。

完全接続層(FC/線形/高密度):

これらは、それぞれが前の層のすべてのニューロンから入力を受け取るニューロンのセットです。レイヤーを作成した場合
稠密な層のみからなるネットワークは、完全接続ネットワークと呼ばれることもあります。

Deep Learning Essentials

ニューラル ネットワークの出力形状

0 次元配列

ニューラル ネットワーク層にニューロンが 1 つだけある場合、その出力は単一のスカラー値になります。数学的には、この出力は 0 次元配列として表すことができます。

1 次元配列 (1D 配列)

ニューラル ネットワークの層に複数のニューロンがある場合、出力は値のリストまたはベクトルとして表すことができます。たとえば、レイヤーに 12 個のニューロンが含まれる場合、出力は 12 個の要素を含む 1D 配列になります。

(注: ニューラル ネットワークがどれほど大きくても、複雑であっても、活性化関数がなく、それらが加算、減算などの線形関数である場合、常に単一のニューロンと同等になります。)

Deep Learning Essentials

Deep Learning Essentials

テンソル

任意の次元数のボックス状に配置された数値の配列を表す一般用語。これには、1 次元 (ベクトル)、2 次元 (行列)、3 次元 (ボリューム)、および高次元の配列が含まれます。

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

ニューラル ネットワークのトレーニングには、予測の誤差を最小限に抑えるためにネットワークの重みを調整することが含まれます。これは、コストまたは損失関数を削減するためにネットワークのパラメーターを反復的に更新するプロセスを通じて行われます

オートエンコーダ

これらは、教師なし学習に使用されるニューラル ネットワークの一種です。重要なアイデアは、入力を低次元のコードに圧縮し、このコードから元の入力を再構築することです。

構造

エンコーダ:
この部分は、入力データをコンパクトな表現に圧縮します。
例: 画像の場合、エンコーダはその次元を、たとえば 128x128 ピクセル から、32 次元

のような小さなベクトルに削減する場合があります。

デコーダ:
この部分は、圧縮表現から元の入力データを再構築します。
例: デコーダは 32 次元ベクトルを取得し、128x128 ピクセルの画像を再作成しようとします。

トレーニングプロセス

入力と再構成された出力の差を最小限に抑えるようにトレーニングされています。これは通常、連続データの場合は 平均二乗誤差 (MSE)、バイナリ データの場合は バイナリ クロス エントロピー などの損失関数を使用して行われます。目標は、再構成が元の入力にできるだけ近づくようにネットワークの重みを調整することです。

バリエーション:

1) オートエンコーダーのノイズ除去
2) 変分オートエンコーダ
3) スパースオートエンコーダ

圧縮の種類:

1) ロスレス:
これは、圧縮されたデータから元のデータを完全に再構築できるデータ圧縮の一種です。これは、圧縮プロセス中に情報が失われることはなく、解凍されたデータは元のデータと同一であることを意味します。
アルゴリズム: エントロピー エンコーディングや辞書ベースの技術などの方法を使用します。例: ハフマン コーディング: 頻繁に発生するシンボルを短いコードでエンコードし、頻度の低いシンボルを長いコードでエンコードします。Lempel-Ziv-Welch (LZW): データからシーケンスの辞書を構築し、一般的なシーケンスには短いコードを使用します。ランレングス エンコーディング(RLE): 文字とそのカウントを保存することにより、繰り返される文字のシーケンスを圧縮します。Ex。 PNG、FLAC、ZIP

2) 非可逆:
データの一部を削除することでファイル サイズを削減します。多くの場合、人間の感覚では目立たない方法で行われますが、忠実度がいくらか失われます。目標は、使用目的に許容できる品質を維持しながら、ファイル サイズの大幅な削減を達成することです。
元。 JPEG、H.264 または HEVC、MP3Transform コーディング: データを別のドメイン (周波数ドメインなど) に変換し、量子化します。例: 離散コサイン変換 (DCT): JPEG 画像圧縮で使用。離散ウェーブレット変換 (DWT): JPEG 2000 で使用。

応用:

1) 次元削減
2) ノイズ除去

違い

オプティマイザー: 損失関数を最小限に抑えるために重みを調整します。
損失関数: モデルの予測が実際の値とどの程度一致しているかを測定します。
アクティベーション関数: モデルに非線形性を追加し、複雑なパターンを学習できるようにします。

常につながりましょう!
この投稿を気に入っていただけましたら、ソーシャル メディアで私をフォローして、さらなる最新情報や洞察を入手してください:

Twitter: マダガネサン
Instagram: マダガネサン
LinkedIn: マダガネサン

以上がディープラーニングの必需品の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート