Чтение онлайн

на главную - закладки

Жанры

Сверточные нейросети
Шрифт:

Еще одним недостатком Sigmoid является ее асимптотическое поведение: для очень больших положительных или отрицательных значений входа выход функции становится близким к 1 или 0 соответственно, но никогда не достигает этих значений. Это может привести к ситуации, когда нейроны находятся в насыщенной области, где они практически не обучаются. Это особенно проблематично для глубоких нейронных сетей, где многослойное применение Sigmoid может усугублять проблему затухающих градиентов.

Несмотря

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

Пример использования Sigmoid

Рассмотрим пример использования функции активации Sigmoid в нейронной сети, реализованной с помощью библиотеки Keras на Python. В этом примере мы создадим простую нейронную сеть для задачи бинарной классификации на наборе данных Pima Indians Diabetes.

```python

import numpy as np

from keras.models import Sequential

from keras.layers import Dense

from keras.datasets import mnist

from keras.utils import np_utils

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

# Загрузка данных Pima Indians Diabetes

from sklearn.datasets import load_diabetes

data = load_diabetes

X = data.data

y = (data.target > data.target.mean).astype(int) # Бинаризация целевой переменной

# Разделение данных на тренировочную и тестовую выборки

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Нормализация данных

scaler = StandardScaler

X_train = scaler.fit_transform(X_train)

X_test = scaler.transform(X_test)

# Создание модели

model = Sequential

# Добавление слоев с функцией активации Sigmoid

model.add(Dense(12, input_dim=X_train.shape[1], activation='sigmoid')) # Первый полносвязный слой с Sigmoid

model.add(Dense(8, activation='sigmoid')) # Второй полносвязный слой с Sigmoid

model.add(Dense(1, activation='sigmoid')) # Выходной слой с Sigmoid для бинарной классификации

# Компиляция модели

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Обучение модели

model.fit(X_train, y_train, epochs=150, batch_size=10, validation_split=0.2)

# Оценка модели на тестовых данных

score = model.evaluate(X_test, y_test)

print(f'Test loss: {score[0]}')

print(f'Test accuracy: {score[1]}')

```

Пояснение

1.

Загрузка данных Pima Indians Diabetes:

Мы используем набор данных Pima Indians Diabetes, который содержит различные медицинские показатели, чтобы предсказать, есть ли у пациента диабет (бинарная классификация). В этом примере мы создаем бинарную метку на основе того, превышает ли целевая переменная среднее значение.

2. Разделение данных:

Мы делим данные на тренировочные и тестовые выборки в соотношении 80% на 20%.

3. Нормализация данных:

Мы нормализуем данные с использованием `StandardScaler` для улучшения производительности модели.

4. Создание модели:

Мы создаем последовательную модель (Sequential) и добавляем слои:

– Первый слой содержит 12 нейронов и использует функцию активации Sigmoid. Размер входного слоя соответствует числу признаков в данных.

– Второй слой содержит 8 нейронов и также использует функцию активации Sigmoid.

– Выходной слой содержит 1 нейрон и использует функцию активации Sigmoid для бинарной классификации (выходное значение в диапазоне от 0 до 1, интерпретируемое как вероятность).

5. Компиляция модели:

Мы компилируем модель, используя функцию потерь `binary_crossentropy`, оптимизатор `adam` и метрику `accuracy`.

6. Обучение модели:

Мы обучаем модель на тренировочных данных с размером батча 10 и числом эпох 150, используя 20% данных для валидации.

7. Оценка модели:

Мы оцениваем модель на тестовых данных и выводим значения потерь и точности.

Этот пример демонстрирует, как функция активации Sigmoid используется в полносвязных слоях нейронной сети для задачи бинарной классификации. Sigmoid помогает интерпретировать выходные значения как вероятности, что делает её полезной для этой задачи.

Tanh (Hyperbolic Tangent)

Функция активации Tanh, или гиперболический тангенс, является популярным выбором для нейронных сетей благодаря своим уникальным свойствам. Она преобразует входные значения в диапазон от -1 до 1, что делает её центрально симметричной относительно начала координат. Это означает, что отрицательные входные значения будут отображаться на отрицательные выходные значения, а положительные входные значения будут отображаться на положительные выходные значения. Центральная симметрия функции Tanh делает её особенно полезной, когда нужно нормализовать данные и сделать нулевое значение централизованным, что помогает ускорить процесс обучения.

Конец ознакомительного фрагмента.

Поделиться:
Популярные книги

Идеальный мир для Демонолога 5

Сапфир Олег
5. Демонолог
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Демонолога 5

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Бастард

Майерс Александр
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард

Гримуар темного лорда V

Грехов Тимофей
5. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда V

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Ваше Сиятельство 9

Моури Эрли
9. Ваше Сиятельство
Фантастика:
боевая фантастика
попаданцы
стимпанк
аниме
фэнтези
5.00
рейтинг книги
Ваше Сиятельство 9

Страж Кодекса. Книга IV

Романов Илья Николаевич
4. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга IV

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5

Идеальный мир для Демонолога

Сапфир Олег
1. Демонолог
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Демонолога

Шайтан Иван 5

Тен Эдуард
5. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
5.00
рейтинг книги
Шайтан Иван 5

Последний наследник

Тарс Элиан
11. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний наследник

Шайтан Иван 6

Тен Эдуард
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Шайтан Иван 6

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт

Кодекс Охотника. Книга VII

Винокуров Юрий
7. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.75
рейтинг книги
Кодекс Охотника. Книга VII