Добавить в корзинуПозвонить
Найти в Дзене
ТехноШаман

Простые эксперименты с простой нейросетью. Часть 2.

Продолжаю описывать свои эксперименты с нейросетью, написанной с нуля. Эксперименты just for fun, что бы понять работу нейронки изнутри и оценить её возможности. Отряд не заметил потери бойца... Сегодня опишу ещё один проект, где я обучил нейросеть, а потом стал уничтожать нейрон за нейроном в одном из скрытых слоёв и смотрел, насколько нейросеть потеряет работоспособность. Начало проекта соответствует проекту, который я описал в первой части.
На вход нейросети подаётся изображение с отсутствующей центральной частью и нейросеть должна её восстановить
Только здесь я использовал фрагменты 15 на 15 пиксель и нейросеть должна была восстановить отверстие размером 5 на 5 пиксель. У меня получилось 200 входных нейронов(пикселей на входе), два скрытых слоя на 100 и 50 нейронов и на выходе 25 нейронов(пикселей на выходе). После того, как я обучил сеть, я взял фотографию и прошёлся по ней нейросетью с шагом в 5 пиксель и из квадратиков 5х5, что выдавала нейросеть, составлял новое изображение.
Оглавление

Продолжаю описывать свои эксперименты с нейросетью, написанной с нуля. Эксперименты just for fun, что бы понять работу нейронки изнутри и оценить её возможности.

Отряд не заметил потери бойца...

Сегодня опишу ещё один проект, где я обучил нейросеть, а потом стал уничтожать нейрон за нейроном в одном из скрытых слоёв и смотрел, насколько нейросеть потеряет работоспособность.

Начало проекта соответствует проекту, который я описал в первой части.
На вход нейросети подаётся изображение с отсутствующей центральной частью и нейросеть должна её восстановить
Только здесь я использовал фрагменты 15 на 15 пиксель и нейросеть должна была восстановить отверстие размером 5 на 5 пиксель.

Слева - подаётся на вход нейросети, справа - получаем на выходе.
Слева - подаётся на вход нейросети, справа - получаем на выходе.

У меня получилось 200 входных нейронов(пикселей на входе), два скрытых слоя на 100 и 50 нейронов и на выходе 25 нейронов(пикселей на выходе).

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

Получение копии картинки.
Получение копии картинки.

Так как отверстие было мало, всего 5х5 пикселей, нейросеть очень точно угадывала недостающую часть и полученное изображение мало отличалось от исходного. Замечу, что в полученном изображении нет ни одного пикселя, скопированного напрямую, все пиксели предсказаны.

А теперь мы уничтожим один нейрон из скрытого слоя со 100 нейронами и снова попробуем составить изображение и квадратиков, которые выдаёт нейросеть. А потом ещё один.... и ещё один.. Пока не уничтожим все нейроны скрытого слоя и каждый раз будем создавать изображение, что бы увидеть процесс.

Уничтожение нейрона происходит обнулением веса всех связей, исходящих из него.

Результаты

На изображениях можно посмотреть результат работы с отключенными 33% нейронов , 66%, 90% и 99%.

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

Вот такое замечательное свойство есть у нейросетей, они продолжают работать даже когда понесли большие потери.

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

Dropout

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

Dropout
Dropout

Ну а на сегодня всё.

Видео, где описаны 4 эксперимента. Эксперимент из этой статьи идёт начиная с 4:38

Подписывайтесь, ставьте лайки, пишите свои варианты экспериментов, возможно я их реализую.
Пока.

foo52ru