Искусственный интеллект - точка входа
468 subscribers
409 photos
51 videos
6 files
280 links
Нейронные сети, алгоритмы машинного обучения на понятном языке 🤗
Изучаем модели ИИ в спокойной обстановке ☕️



Основной сайт: https://aisimple.ru/
Онлайн-школа: https://school.aisimple.ru/
Сотрудничество: @danvir
Download Telegram
В 1975 году Пол Вербос разработал метод обратного распространения ошибки (BackPropagation). Этот метод лег в основу одноименного алгоритма.

В данном курсе для начинающих не будем углубляться в математику (подробнее поговорим об этом на сайте).

Напомним👆, что задача обучения - оптимально подобрать значения весовых коэффициентов.

Опишем кратко шаги алгоритма обратного распространения ошибки.

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

2. Расчет значений всех выходов нейронов всех слоев.

3. Расчет погрешности между выходным значением нейронной сети и эталонным образцом обучающей выборки.

3. По полученной погрешности рассчитываются невязки нейронов выходного (последнего) слоя сети. Невязкой называют величину ошибки (расхождения) приближённого равенства.

4. Рассчитываются невязки нейронов всех слоев в обратной последовательности начиная с предпоследнего.

5. Расчет весовых коэффициентов связей между нейронами.

6. Повторение цикла с шага 2 до тех пор пока не будет выполнено одно из условий :

- исчерпано заданное количество эпох обучения;

- достигнут удовлетворительный уровень ошибки по всей обучающей выборке;

- не происходит уменьшения ошибки обучающей выборки на протяжении заданного количества эпох обучения;

- исчерпано заданное физическое время обучения.

Это итерационный алгоритм, по-русски говоря, пошаговый.

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

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

👉 @aisimpleru
👍3
Последний сложный 😁для понимания пост на этой неделе.
Ниже - список основных алгоритмов обучения нейронных сетей с учителем.

1️⃣ Алгоритмы локальной оптимизации с вычислением частных производных первого порядка:
- градиентный алгоритм (метод наискорейшего спуска),
- алгоритм обратного распространения ошибки (BackPropagation) (разобрали в предыдущем посте)
- методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента,
- метод сопряженных градиентов,
- методы, учитывающие направление антиградиента на нескольких шагах алгоритма.

2️⃣ Алгоритмы локальной оптимизации с вычислением частных производных первого и второго порядка:
- метод Ньютона,
- методы оптимизации с разреженными матрицами Гессе,
- квазиньютоновские методы,
- метод Гаусса-Ньютона,
- метод Левенберга-Марквардта и др.

3️⃣ Стохастические алгоритмы оптимизации:
- поиск в случайном направлении,
- имитация отжига,
- метод Монте-Карло (численный метод статистических испытаний).

👉️️️️ @aisimpleru
👍4
Посмотрите на изображение. Давайте немного отвлечемся от нейронных сетей. Перед вами примеры регрессионных линий.

Про само уравнение регрессии поговорим в понедельник 17.07.
А сейчас, просто посмотрите на три графика.

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

Ниже будет опрос.

👉 @aisimpleru
👍1
Какая линия из поста выше 👆 лучше всего описывает данные?
Anonymous Poll
7%
1. Первая
2%
2. Вторая
91%
3. Третья
Уверен, что для многих было очевидно, что лучше всего данные описывает прямая под номером #3.
Почему так? Потому что для нее среднеквадратичная ошибка была минимальна и составила 0,02.

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

👉 @aisimpleru
👍1
Вот так выглядит экспериментальная поисковая выдача Google.

Вместо привычных 10 синих ссылок мы видим рекомендации от ИИ.

Сложно сейчас оценить хорошо это или плохо. Привычные нам вещи меняются и будут меняться еще стремительнее в ближайшем будущем.

👉 @aisimpleru
👍3
Мы уже поговорили об искусственном нейроне (https://t.me/aisimpleru/38), рассмотрели, что такое нейронная сеть (https://t.me/aisimpleru/40), про обучение нейронной сети (https://t.me/aisimpleru/48).

Чтобы обучить нейронную сеть, нам нужна обучающая выборка.

Обучающая выборка - множество примеров, относящихся к одному объекту при определенных условиях его исследования.

Посмотрите на фрагмент обучающей выборки Ирисов Фишера.
Это классический пример, который использовался ученым Рональдом Фишером для решения задачи классификации.

Есть три вида ирисов:
1. щетинистый (setosa),
2. разноцветный (versicolor),
3. виргинский (virginica).

Эти растения разделяют в зависимости от параметров чашелистика и лепестков.

Длина и ширина чашелистика и лепестков закодированы цифрами. Будем подавать их на вход сети.

На выходе нейронная сеть должна будет вернуть выходной вектор из трех значений в следующих комбинациях:
1, 0, 0 - setosa,
0, 1, 0 - versicolor,
0, 0, 1 - virginica.

Архитектура нейронной сети может быть такой: вектор входов из 4 значений, далее 4 нейрона в первом слое, 1 промежуточный слой из 3 нейронов и 3 выходных нейрона.

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

В следующем посте поговорим об особенностях формирования обучающих выборок.

👉 @aisimpleru
👍3
В предыдущем посте (https://t.me/aisimpleru/61) мы рассмотрели, что такое обучающая выборка.
Качество обучающей выборки - ключевой параметр, влияющий на эффективность работы вашей модели. В особенности, если речь идет о комплексных моделях, а не только о нейронных сетях.

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

Три главных правила хорошей обучающей выборки для обучения нейронных сетей:

1️⃣ Соответствие используемой структуре нейронной сети
2️⃣ Непротиворечивость
3️⃣ Репрезентативность

Рассмотрим каждое правило.

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

Количество настраиваемых весовых коэффициентов = числу синаптических связей.
Например, обучающая выборка для архитектуры из предыдущего поста (https://t.me/aisimpleru/61) должна содержать от 74 до 185 примеров, т.к. настраивается 37 весовых коэффициентов.

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

Репрезентативность. В выборке должны содержаться значения входных переменных и соответствующих им выходных из всего спектра возможных значений. Чтобы нейронная сеть или модель могла решить задачу с заданной точностью.
Например, если вы используете в выборке в качестве входного параметра возраст, то нельзя ограничиваться узким диапазоном с 24 до 30 лет.

⚠️ Важный момент! Если целевая аудитория для решения задачи именно этого возраста, то включать в выборку детей или стариков 70+ лет не будет иметь никакого смысла.

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

👉 @aisimpleru
👍1
Если будете создавать и обучать нейросетевую модель, рекомендуем использовать данный алгоритм.

1. Постановка задачи
2. Выбор источника данных для обучающей выборки
3. Выбор архитектуры нейронной сети для решения задачи
4. Определение структуры нейронной сети (количество и тип входных и выходных данных, количество скрытых слоев)
5. Подготовка обучающей выборки
6. Выбор алгоритма обучения
7. Проведение обучения нейросетевой модели
8. Оценка адекватности работы модели
9. Применение нейросетевой модели на практике

В дальнейшем, разберем более подробно отдельные шаги этого алгоритма

👉 @aisimpleru
👍2
Поговорим о преимуществах нейронных сетей.

Выделим 6 преимуществ:
1. Способность к обобщению
2. Решение задач при неизвестных закономерностях
3. Устойчивость к шумам во входных данных
4. Адаптация к изменениям окружающей среды
5. Потенциальное сверхвысокое быстродействие
6. Отказоустойчивость при аппаратной реализации нейронной сети

Завтра поговорим о недостатках нейронных сетей.

👉 @aisimpleru
👍1
Попросил Midjourney нарисовать, как она видит сама себя.

Вот что из этого вышло 🤷‍♂️

Интересно, что ИИ видит себя и в мужском и женском обличии одновременно.

👉 @aisimpleru
👍2
Недостатки нейронных сетей можно разделить на две группы:
серьезные и незначительные.

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

⚠️ От качества исходных данных зависит успех применения алгоритмов машинного обучения.

👉 @aisimpleru
👍1
post-035-3.jpg
111.1 KB
Ранее, мы упоминали (https://t.me/aisimpleru/23), что методы ИИ используются в скоринговых моделях. Это одно из популярных направлений применения ИИ и нейросетей.

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

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

Подробнее читайте в источнике: https://habr.com/ru/companies/alfa/articles/748824/

👉 @aisimpleru
Список готовых нейронных сетей для всех задач.

Сохраните себе где-нибудь

👉 @aisimpleru
👍1👎1
Мы с вами рассмотрели, что такое нейронные сети, поговорили о том, какие типы и архитектуры нейронных сетей бывают, как обучать нейронные сети.

Еще раз напомним мысли из вот этого поста (https://t.me/aisimpleru/31).

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

Нейронные сети прекрасно справляются с решением 5 классов задач:
1️⃣ Задача интерполирования и аппроксимации данных и рядов
2️⃣ Задача прогнозирования
3️⃣ Задача классификации
4️⃣ Задача кластеризации
5️⃣ Задача распознавания образов

На этой неделе рассмотрим все эти задачи более подробно.

👉 @aisimpleru
👍1