Alexnet
深い畳込みニューラルネットワークによるImagenet分類
私たちは、1000個の異なるクラスにImagenet LSVC - 2010コンテストで120万の高解像度イメージを分類するために、大きくて深い畳み込み型ニューラルネットワークを訓練しました.テストデータでは、TOP - 1とTOP - 5のエラー率は37.5 %、17.0 %であったが、これは従来技術よりかなり優れている.6000万個のパラメータと65万個のニューロンを持つニューラルネットワークは、5つの畳み込み層から成り、そのうちのいくつかはマックスプーリング層が続き、3つの完全に接続された層が最終的な1000ウェイSoftMaxを持つ.
Paper
実装
2012年に、Alexnetは大幅にすべての前の競争相手を追い出して、26 %から15.3 %へのトップ5エラーを減らすことによって、挑戦に勝ちました.第2位のap‐5エラー率はcnn変動ではなく,26 . 2 %前後であった.
import keras
from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout, Flatten, Conv2D, MaxPooling2D
from keras.layers.normalization import BatchNormalization
import numpy as np
np.random.seed(1000)
#Instantiate an empty model
model = Sequential()
# 1st Convolutional Layer
model.add(Conv2D(filters=96, input_shape=(224,224,3), kernel_size=(11,11), strides=(4,4), padding=’valid’))
model.add(Activation(‘relu’))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=’valid’))
# 2nd Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(11,11), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=’valid’))
# 3rd Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))
# 4th Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))
# 5th Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), padding=’valid’))
model.add(Activation(‘relu’))
# Max Pooling
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding=’valid’))
# Passing it to a Fully Connected layer
model.add(Flatten())
# 1st Fully Connected Layer
model.add(Dense(4096, input_shape=(224*224*3,)))
model.add(Activation(‘relu’))
# Add Dropout to prevent overfitting
model.add(Dropout(0.4))
# 2nd Fully Connected Layer
model.add(Dense(4096))
model.add(Activation(‘relu’))
# Add Dropout
model.add(Dropout(0.4))
# 3rd Fully Connected Layer
model.add(Dense(1000))
model.add(Activation(‘relu’))
# Add Dropout
model.add(Dropout(0.4))
# Output Layer
model.add(Dense(17))
model.add(Activation(‘softmax’))
model.summary()
# Compile the model
model.compile(loss=keras.losses.categorical_crossentropy, optimizer=’adam’, metrics=[“accuracy”])
実装の著者AlexNet
その他の資源
Reference
この問題について(Alexnet), 我々は、より多くの情報をここで見つけました https://dev.to/aipool3/alexnet-pgaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol