Искусственные нейронные сети называются сетями, потому что они представлены композицией нескольких различных функций.
В этой статье вы найдете:
- Краткое введение в искусственные нейронные сети.
- Графическое представление,
- Функция активации и стоимости.
- Внедрение искусственных нейронных сетей с помощью Keras в Jupyter Notebook
- Частичное резюме.
Искусственные нейронные сети
Большинство реальных проблем не являются линейно разделимыми. Для вычисления нелинейных гипотез одним из наиболее эффективных с вычислительной точки зрения способов является соединение небольших блоков, выполняющих «логистическую регрессию».
Искусственные нейронные сети называются сетями, потому что они представляют собой набор нескольких различных функций.
Информация в сети проходит через функции, связанные в цепочку[1]:
ŷ = 𝑓⑵(𝑓⑴(𝓍))
, связанные функцииилиискусственная нейронная сеть, где:(𝓍)
— это входной слой,𝑓⑴
— это скрытый слой, а𝑓⑵
— это выходной слой.
для каждого слоя 𝑓⒤
:
𝑓⒤(𝒽) = σ⒤(W⒤𝒽 + b⒤)
, логистическая регрессия,где:σ⒤
– это функция активации.W⒤
— матрица веса, аb⒤
— вектор смещения.
это:
ŷ = σ⑵ [W⑵σ⑴ (W⑴𝓍 + b⑴) + b⑵]
Графическое представление
Функция активации
Они привносят нелинейность в искусственные нейронные сети.
Для проблем регрессииσ⑵
: функция тождества,
σ(𝑧)=𝑧
Для проблем классификацииσ⑵
: сигмовидная функция.
- Логистика,
- Тан,
- Софтмакс,
- Подробнее о функции активации.
Функция стоимости
Для проблем регрессии:
MSE = 1/n ∑(y⒤-ŷ⒤)²
, сворачивая с помощью MSE.
Для задач классификации:
E(y, ŷ)= — ∑ y⒤ log(ŷ)
, минимизация с помощью кросс-энтропии.
Код на гитхабе
В этом репозитории вы найдете пошаговую реализацию искусственной нейронной сети с помощью Keras в Jupyter Notebook.
Обучение и оценка модели
- Данные: Набор данных MNIST
(X_train, y_train), (X_test, y_test) = mnist.load_data()
2. Модель:
model = Sequential() # Add the input layer and hidden layer 1 model.add(Dense(32, input_shape=(784,), activation='sigmoid')) # Add the output layer model.add(Dense(10, activation='softmax'))
3. Компиляция:
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['categorical_accuracy'])
4. Подходит:
history = model.fit(X_train, y_train_cat, batch_size=256, epochs=50, validation_data=(X_test, y_test_cat))
5. Оценить:
[test_loss, test_acc] = model.evaluate(X_test, y_test_cat)
Результаты MNIST
Для всех моделей обучения: Эпох: 50, Размер пакета: 256, Оптимизатор: RMSProp,иВыходной слой: 10 единиц softmax.
Частичное резюме
Все теоретические и практические реализации: Линейная регрессия, Логистическая регрессия, Искусственные нейронные сети, Глубокие нейронные сети и Сверточные нейронные сети.
Для тех, кто ищет все статьи из нашей серии ML & DL. Ссылка здесь.
использованная литература
[1] Гудфеллоу И., Бенжио Ю. и Курвиль А. (2016). Глубокое обучение. Массачусетский технологический институт Пресс.