Искусственные нейронные сети называются сетями, потому что они представлены композицией нескольких различных функций.

В этой статье вы найдете:

  • Краткое введение в искусственные нейронные сети.
  • Графическое представление,
  • Функция активации и стоимости.
  • Внедрение искусственных нейронных сетей с помощью Keras в Jupyter Notebook
  • Частичное резюме.

Искусственные нейронные сети

Большинство реальных проблем не являются линейно разделимыми. Для вычисления нелинейных гипотез одним из наиболее эффективных с вычислительной точки зрения способов является соединение небольших блоков, выполняющих «логистическую регрессию».

Искусственные нейронные сети называются сетями, потому что они представляют собой набор нескольких различных функций.

Информация в сети проходит через функции, связанные в цепочку[1]:

  • ŷ = 𝑓⑵(𝑓⑴(𝓍)), связанные функцииилиискусственная нейронная сеть, где:
  • (𝓍) — это входной слой,
  • 𝑓⑴ — это скрытый слой, а
  • 𝑓⑵ — это выходной слой.

для каждого слоя 𝑓⒤:

  • 𝑓⒤(𝒽) = σ⒤(W⒤𝒽 + b⒤) , логистическая регрессия,где:
  • σ⒤ – это функция активации.
  • W⒤ — матрица веса, а
  • b⒤ — вектор смещения.

это:

  • ŷ = σ⑵ [W⑵σ⑴ (W⑴𝓍 + b⑴) + b⑵]

Графическое представление

Функция активации

Они привносят нелинейность в искусственные нейронные сети.

Для проблем регрессииσ⑵: функция тождества,

  • σ(𝑧)=𝑧

Для проблем классификацииσ⑵: сигмовидная функция.

Функция стоимости

Для проблем регрессии:

  • MSE = 1/n ∑(y⒤-ŷ⒤)², сворачивая с помощью MSE.

Для задач классификации:

  • E(y, ŷ)= — ∑ y⒤ log(ŷ) , минимизация с помощью кросс-энтропии.

Код на гитхабе

В этом репозитории вы найдете пошаговую реализацию искусственной нейронной сети с помощью Keras в Jupyter Notebook.



Обучение и оценка модели

  1. Данные: Набор данных 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). Глубокое обучение. Массачусетский технологический институт Пресс.