4.15深い学習

4598 ワード

DNN


ニューラルネットワーク
ほとんどの方法を含む

オーダー


ニューラルネットワークの作成:何層作成しますか?->層の中で何個のニューロンを入れます
->レイヤーの追加
->ニューラルネットワークの完了
# 신경망을 완성시킨다
network.compile(optimizer='rmsprop', #가중치 조절하는 것
                loss='categorical_crossentropy', #여러가지를 위한 손실 함수
                metrics=['accuracy'])  #무슨 지표로 이 동작을 실행 시킬것이냐
rmsprop:最適化アルゴリズム

両者の1つはsigmoid,tanhアルゴリズム+binary crossentropy
3人以上の場合は長めに残したほうがいいです.LUシリーズアルゴリズム(主に使用)+分類クロスエントロピー
Activation:ある値を入力したときに通過するか否かを判断する関数

activation=「sigmoid」が0または1の場合


====>loss="binary crossentropy"=====loss関数は常に最後のレイヤに関連付けられます.

activation="softmax"面の3つの異常


=====> loss=' categorical_crossebtropy'

分類としてsigmoidとsoftmaxを用いるとクロスエントロピーが重なる


ソフトmax特性


一対一の関係を証明した.
合計は1です.

ちょうど良い数字でなくても確率計算があります。


network.add(layers.Dense(512, activation='relu',input_shape=(28* 28,)))
network.add(layers.Dense(10, activation='softmax'))

最後にレイヤーにsoftmaxを書く理由:最終的な結論は、784個のデータが10個(0から9)のデータに入る必要があります。それは、どのようなデジタルデータであるかの確率を計算するからです。


コンピュータにとって(60000,28,28)は3次元計算であり,ヒースマン(60000,28*28)は2次元計算であり,処理速度がより速い
#1행당 784개의 데이터를 넣고 60000개의 행이 있는 것
train_images = train_images.reshape(60000, 28 * 28 )
train_images = train_images.astype('float32') /255 
実数に置き換え、0~255の値を置き換えます.
network.fit(train_images, train_labels, epochs=5, batch_size=128)
時代背景の過程を何度繰り返すか
batch sizeは、一度に変換すると、データサイズ/128程度を決定して切断します.
network.evaluate(test_images, test_labels)
.evaluate:評価方法
アルゴリズム適用順序
GD:勾配降下傾斜降下法

Movie Review classfication

imdb.load_data(num_words=10000) 
keras構文、imdb.load data():すべてのデータを取得=分析しにくい

元の単語に復元する方法


word indexは、単語と整数インデックスをマッピングするバイナリファイルです。


word_index = imdb.get_word_index()

整数インデックスを反転して単語をマッピング


reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])

コメントを復号します。


0、1、2から3を減算します。これは、「塗りつぶし」、「ドキュメントの開始」、および「辞書にない」インデックスです。


decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]])

.get word index()デジタルデータを元の単語データにインポートするコマンド


数字データとして保持される理由:単語を数字に変換し、数字を学習してポジティブとネガティブのデータを入力し、1番がポジティブ、0番がネガティブ

シングルラインエンコーディング


1~10000セルの場合、
1を含めるには、0番目のセルを1にし、残りの9999個を0に設定します.
2を含めたい場合は、1番のパッチを1にし、残りの9999個を0にします.
np.zero((10,dimension))
Zeroメソッドは1つのパラメータしか使用しないので、必ずパターンで表示しなければなりません(10,dimension)
10 2行、dimension 2列、10の配列を生成します.
for i, sequence in enumerate(sequences):
    results[i, sequence] = 1.
列挙(シーケンス)シーケンスの値順に基づいて自動的にインデックス番号を付ける
iはインデックス番号、シーケンスはシーケンスの値
シーケンス=[3,5,7,9,12]の場合
result[0,3]なので、0行3列の値に1を入れます
=>0と1の数値データ

CNN convolutional Neural Networks


ごうせいニューラルネットワーク

緑のブロックは実際のデータを表します
=9ピクセルに1ピクセルを乗算します.
=これを繰り返す
=合成乗数を指定できます
valid:実際のデータの特性を最大限に発揮する.十分なデータを取得しますか?
model.add(layer.Conv2D(32,(3,3), input_shape(28,28,1)))
(3,3):合成ダブルサイズ
(28、28、1)白黒1色綿3

MaxPooling2D(pool_size(2,2)


微細な変化を無視するレイヤ
最大値のみを収集して新しいデータを作成するレイヤです.

Flatten layer



最終的に値をDense Layerに抽出

Unicode


どの国も独自の基準を制定しているが、不統一な問題が発生し、世界各地の人からなるシステムである.
漢字の割合が最も大きく、次いでハングル
古語でも表現できる
ワードしきべつ
フォントが変わると認識できない問題が発生します
->機械学習による認識の向上

tip


分類に変換された理由


求められるのは計算可能な数字ではなく、区別するための数字だからだ.
from tensorflow.keras.utils import to_categorical

層間投影では、ニューロンの数を減らし続ける必要があります。


16 => 2 =>16 (X)
16 =>16 => 1 (O)

▲履歴実行結果表示