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



Основной сайт: https://aisimple.ru/
Онлайн-школа: https://school.aisimple.ru/
Сотрудничество: @danvir
Download Telegram
В парке в подмосковном Домодедово установят арт-объект, визуализацию которого создали с помощью ИИ. Это будет лабиринт с интерактивным пространством из зеркальных инсталляций, в котором организуют выставки.

При создании объекта авторы пользовались нейросетью Stable Diffusion, модель дообучали архитекторы «Культ-Строя». Они размечали точки по картинке и выдавали им разную глубину.

«Точки были соединены в грани, было произведено удаление неудачных граней, всего получилось 77 уникальных граней, разного размера и величины. Затем были сделаны точные замеры и полноценная развёртка для производства и монтажа зеркальных граней», – рассказали авторы проекта.

Авторы подчеркнули, что их проект станет первые в России арт-пространством, созданным при помощи искусственного интеллекта.

Источник: rb.ru

Пока это только «первые ласточки» подобного рода. Наверное уже скоро что-то, сделанное человеком, будет цениться значительно дороже, чем сгенерированное ИИ 🤔

👉 @aisimpleru
👍7
На прошлой неделе мы уже рассмотрели, что такое многослойная нейронная сеть прямого распространения.

Проще говоря, нейронная сеть – это черный ящик. Вы подаете на вход ящика сигналы и получаете ответный сигнал на выходе.

Сигналы - это числовые значения.

Нейронная сеть строит сложную функциональную зависимость выхода от входа 📈.

Чтобы она это делала правильно, обучим ее. Для этого потребуется выборка обучающих примеров.

Возьмем для примера температуру 🌡 воздуха в Москве в июле в разбивке по дням за 10 лет.

Примем что на вход сети подаются значения температуры сегодня.
На выходе - значения температуры завтра.

Во время обучения вы подаете на вход сети значения температуры сегодня. На выходе получаете от нее некие значения и сравниваете с эталонным образцом. Например, значения температуры воздуха в Москве 19.07.2020 (вход) и 20.07.2020 (выход).

На выходе происходит расчет ошибки нейронной сети. Если ошибка велика, происходит подстройка весовых коэффициентов всех связей между нейронами НС на всех промежуточных слоях.

Все примеры обучающей выборки в случайном порядке подаются на вход, а выходное значение сети сравнивается эталонным выходным значением. Один такой цикл называется эпохой обучения.

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

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

P.S. Пост получился длинный. Про алгоритм обратного распространения ошибки поговорим чуть позже 😉

👉 @aisimpleru
👏4👍1
Крайне важный момент! Помимо обычных нейронов на изображении нейронной сети вы видели нейроны смещения или коэффициенты смещения. Они нужны для того, чтобы иметь возможность получать выходной результат, путем сдвига графика функции активации вправо или влево. Если забыли, что такое функция активации - посмотрите пост - https://t.me/aisimpleru/39.

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

Если все понятно , поставьте 👍, если слишком сложно - поставьте 👎

👉 @aisimpleru
👍10
В этом небольшом посте посмотрим, какие бывают архитектуры нейронных сетей.

👉 @aisimpleru
👍1
В 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