CNN(合成二重ニューラルネットワーク)
CNN:Convolutional Neural Networks(合成乗ニューラルネットワーク)
プロトコルは、2つの関数に対する演算 であり、そのうちの1つの関数が3番目の関数を生成し、別の関数をどのように修正するかを説明する.大会には、交換性、関連性、分配性など、多くの数学的属性がある. 入力の形状を効果的に変更できるように構成
Filter:ウィンドウ 、最小のフィーチャーをキャプチャするための重みパラメータからなる Straid:フィルタを移動し、表示する画像の数を決定
ex)Strideが1の場合は1マス移動し,ステップ長が2の場合は1マススキップし,Filterを適用すると,明らかに次の層のデータ数は 減少する. Padding:Zeros(または他の値)を画像の外角(エッジ)に配置し、convを行うときに元の画像と同じデータ量(Strid=1の場合)を得るのを助け、Zero-paddingはデータをスケーリングし、十分に利用するためにエッジに0を追加した. 冷却層:特徴マッピングの階層を減少する、これらの減少した特徴を利用してANN形式のニューラルネットワークに分類または回帰する、 .の利点
ローカル機能:ローカル機能の配置
weight sharing
一定の動作があっても、説明はあまり難しくありません.
CNNの第一段階協同進化
入力画像の領域を受信を担当するニューロンにマッピングする変換
利点:従来の画像学習技術と比較して、画像前処理(トリミング、中心化、正規化)は相対的にほとんど必要ない/画像中のすべてのタイプのよくある問題(移動、照明など)に対して堅牢である
既存のデータ学習を再利用するためのネットワークのライブラリ
「学習」とは、部分的に重みと偏向を含む学習済みのモデルを再使用することを意味し、transferlearningと呼ばれる. 部分は使えますが、全部再学習できる トレーニングデータの使用が少なく、トレーニング速度が速く、より良い汎用性モデル を持つことができる.
以前に学習したモデルからパラメータを含む層 を取得する.以降の研修中に含まれる情報が破損することを避けるために、対応する情報を凍結(重み付けを更新せずに凍結)する .凍結層の上にもう1層(学習可能層)を追加
•出力レイヤの数を調整することで、新しいデータセットから必要な予測メソッド(分類、回帰など)に変換する方法を学習します. の新しいデータセットから、新しく追加されたレイヤのみを学習
•既存のレイヤーをフリーズしない場合は、学習したレイヤーから取得した重みを学習します
•このような場合、学習すべきことが多くなるため、時間がかかる
1. Convolution & Pooling
1D-convolution
2D-convolution
ex)Strideが1の場合は1マス移動し,ステップ長が2の場合は1マススキップし,Filterを適用すると,明らかに次の層のデータ数は
ローカル機能:ローカル機能の配置
weight sharing
一定の動作があっても、説明はあまり難しくありません.
2.CNN分類器
CNNの第一段階協同進化
入力画像の領域を受信を担当するニューロンにマッピングする変換
利点:従来の画像学習技術と比較して、画像前処理(トリミング、中心化、正規化)は相対的にほとんど必要ない/画像中のすべてのタイプのよくある問題(移動、照明など)に対して堅牢である
model = Sequential()
model.add(Conv2D(32, (3,3), activation='relu', input_shape=(32,32,3)))
model.add(MaxPooling2D((2,2)))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(MaxPooling2D((2,2)))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))
model.summary()
summary 출력'''
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 30, 30, 32) 896
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 13, 13, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 4, 4, 64) 36928
_________________________________________________________________
flatten (Flatten) (None, 1024) 0
_________________________________________________________________
dense (Dense) (None, 64) 65600
_________________________________________________________________
dense_1 (Dense) (None, 10) 650
=================================================================
Total params: 122,570
Trainable params: 122,570
Non-trainable params: 0
'''
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10,
validation_data=(test_images, test_labels))
3.移転学習
「学習」とは、部分的に重みと偏向を含む学習済みのモデルを再使用することを意味し、transferlearningと呼ばれる.
に道を教える
•出力レイヤの数を調整することで、新しいデータセットから必要な予測メソッド(分類、回帰など)に変換する方法を学習します.
•既存のレイヤーをフリーズしない場合は、学習したレイヤーから取得した重みを学習します
•このような場合、学習すべきことが多くなるため、時間がかかる
Reference
この問題について(CNN(合成二重ニューラルネットワーク)), 我々は、より多くの情報をここで見つけました https://velog.io/@ssulee0206/CNN합성곱-신경망テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol