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

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

Жанры

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

def __init__(self):

super(SimpleNN, self).__init__

self.fc1 = nn.Linear(32*32*3, 128)

self.fc2 = nn.Linear(128, 64)

self.fc3 = nn.Linear(64, 1)

self.tanh = nn.Tanh

def forward(self, x):

x = torch.flatten(x, 1)

x = torch.relu(self.fc1(x))

x = torch.relu(self.fc2(x))

x = self.fc3(x)

x = self.tanh(x)

return x

# Создание экземпляра модели

model = SimpleNN

# Обучение модели и применение Tanh в скрытых слоях

```

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

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

4. Softmax: Softmax-функция обычно используется в выходных слоях для многоклассовой классификации. Она преобразует выходные значения нейронов в вероятности, суммирующиеся до 1, что упрощает интерпретацию выхода модели как вероятностей принадлежности к каждому классу.

Пример использования Softmax в нейронной сети для многоклассовой классификации изображений:

```python

import torch

import torch.nn as nn

import torchvision.transforms as transforms

import torchvision.datasets as datasets

# Загрузка и предобработка данных

transform = transforms.Compose([

transforms.Resize((32, 32)),

transforms.ToTensor,

transforms.Normalize((0.5,), (0.5,))

])

train_set = datasets.ImageFolder(root='./data/train', transform=transform)

train_loader = torch.utils.data.DataLoader(train_set, batch_size=64, shuffle=True)

# Определение архитектуры нейронной сети с Softmax в выходном слое

class SimpleNN(nn.Module):

def __init__(self):

super(SimpleNN, self).__init__

self.fc1 = nn.Linear(32*32*3, 128)

self.fc2 = nn.Linear(128, 64)

self.fc3 = nn.Linear(64, 10) # 10 классов изображений

self.softmax = nn.Softmax(dim=1) # Применение Softmax по размерности 1 (по классам)

def forward(self, x):

x = torch.flatten(x, 1)

x = torch.relu(self.fc1(x))

x = torch.relu(self.fc2(x))

x = self.fc3(x)

x = self.softmax(x) # Применение Softmax к выходам

return x

# Создание экземпляра модели

model = SimpleNN

# Обучение модели и применение Softmax в выходном слое

```

В этом примере мы используем нейронную сеть с тремя полносвязными слоями. После двух скрытых слоев мы применяем ReLU в качестве функции активации, а в выходном слое – Softmax. Softmax преобразует выходные значения нейронов в вероятности для каждого класса, суммирующиеся до 1. Это позволяет нам интерпретировать выход модели как вероятности принадлежности к каждому классу, что особенно полезно в задачах многоклассовой классификации.

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

Развитие архитектуры CNN

Сверточные нейронные сети (CNN) являются ключевым инструментом в обработке данных с сетчатой структурой, таких как изображения. Их развитие прошло через несколько этапов, начиная с ранних моделей, вдохновленных биологическими системами, и заканчивая современными

архитектурами, обладающими высокой эффективностью и точностью.

1. Ранние модели: Неокогнитрон, предложенный Кунихико Фукусимой в 1980 году, представляет собой важный момент в истории развития сверточных нейронных сетей (CNN). Эта модель была вдохновлена структурой и функционированием зрительной коры головного мозга у животных, где нейроны отвечают за обнаружение и выделение определенных признаков в изображениях. Фукусима ввел ключевые концепции, которые легли в основу сверточных сетей, такие как свертка и пулинг.

Сверточная операция, предложенная Фукусимой, позволяла модели обрабатывать изображения, выделяя локальные признаки через прохождение окна (ядра) по входным данным и выполнение умножения на веса. Пулинг, или субдискретизация, в свою очередь, уменьшала размерность данных, сохраняя основные характеристики, что делало модель устойчивой к небольшим трансформациям изображений.

Хотя неокогнитрон сам по себе не обладал мощностью современных CNN и в основном использовался в контексте исследований, его идеи и методы стали отправной точкой для создания более сложных и эффективных архитектур. Этот вклад Фукусимы в мир нейронных сетей сделал возможным развитие сверточных моделей, которые сегодня успешно применяются в широком спектре задач компьютерного зрения, начиная от распознавания объектов до анализа медицинских изображений.

2. LeNet-5 (1998): LeNet-5, разработанная Яном Лекуном в 1998 году, занимает особое место в истории сверточных нейронных сетей (CNN), став одной из первых успешных архитектур для распознавания рукописных цифр. Эта модель была создана для решения задачи распознавания цифр на изображениях, что стало актуальным для автоматической обработки почтовых индексов и других сценариев, связанных с распознаванием письменного текста.

Особенностью LeNet-5 было то, что она использовала несколько слоев свертки и пулинга, что позволило ей эффективно извлекать признаки из изображений разной сложности. Сверточные слои позволяли модели автоматически находить локальные шаблоны и признаки в изображениях, такие как грани, углы и текстуры. После этого применялись слои пулинга, которые уменьшали размерность данных, сохраняя важные характеристики и ускоряя вычисления.

Кроме того, в LeNet-5 присутствовали полносвязные слои, которые объединяли выделенные признаки и выполняли классификацию по распознанным цифрам. Эти слои играли решающую роль в формировании окончательных предсказаний модели. Благодаря комбинации сверточных, пулинговых и полносвязных слоев LeNet-5 стала мощным инструментом в задачах распознавания и классификации рукописных цифр, а также стимулировала дальнейшее развитие сверточных архитектур в области компьютерного зрения.

3. AlexNet (2012): AlexNet, представленная в 2012 году Джеффри Хинтоном и его командой, стала революционным событием в области компьютерного зрения и глубокого обучения. Эта архитектура не только продемонстрировала мощь глубоких сверточных нейронных сетей (CNN), но и существенно улучшила результаты в задаче классификации изображений на конкурсе ImageNet.

Основной особенностью AlexNet было использование восеми сверточных и полносвязных слоев, что на тот момент было революционным для области компьютерного зрения. Эта глубокая архитектура позволила модели извлекать более абстрактные признаки из изображений и более эффективно решать сложные задачи классификации. Кроме того, для улучшения производительности использовались графические процессоры (GPU), что значительно ускорило обучение и выполнение модели.

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

Прорвемся, опера! Книга 3

Киров Никита
3. Опер
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прорвемся, опера! Книга 3

Черный Маг Императора 15

Герда Александр
15. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
фантастика: прочее
5.00
рейтинг книги
Черный Маг Императора 15

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Прорвемся, опера!

Киров Никита
1. Опер
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прорвемся, опера!

Кристалл Альвандера

Садов Сергей Александрович
1. Возвращенные звезды
Фантастика:
научная фантастика
9.20
рейтинг книги
Кристалл Альвандера

Аргумент барона Бронина 3

Ковальчук Олег Валентинович
3. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 3

Камень Книга двенадцатая

Минин Станислав
12. Камень
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Камень Книга двенадцатая

На прицеле

Кронос Александр
6. Лэрн
Фантастика:
фэнтези
боевая фантастика
стимпанк
5.00
рейтинг книги
На прицеле

Медиум

Злобин Михаил
1. О чем молчат могилы
Фантастика:
фэнтези
7.90
рейтинг книги
Медиум

Гранд империи

Земляной Андрей Борисович
3. Страж
Фантастика:
фэнтези
попаданцы
альтернативная история
5.60
рейтинг книги
Гранд империи

Эртан. Дилогия

Середа Светлана Викторовна
Эртан
Фантастика:
фэнтези
8.96
рейтинг книги
Эртан. Дилогия

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Ведьмак. Перекресток воронов

Сапковский Анджей
Фантастика:
фэнтези
5.00
рейтинг книги
Ведьмак. Перекресток воронов

Беовульф (Сборник)

Мартьянов Андрей Леонидович
Фантастика:
фэнтези
альтернативная история
5.75
рейтинг книги
Беовульф (Сборник)