90

Нейросети. Самый полный гайд. Часть 1 для чего нужны нейросети

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


Первая часть. Для чего нужны нейросети.


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


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


2. Формализация. Т.е. запись на каком либо формальном языке процесса превращения исходных данных в результат. Чаще всего это язык математики или формальной логики.


3. Создание алгоритма.


4. Запись алгоритма, на каком либо компьютерном языке.


5. Тестирование и отладка.


6. Проведение расчетов и анализ результатов.


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


Весь этот список, более менее понятен любому человеку. Кроме, быть может, третьего пункта. Если не знать что такое алгоритм нельзя и понять что требуется. Хотя всем нам на интуитивном уровне ясно, что это, но даже немногие программисты знают, что в информатике у этого слова есть довольно чёткое определение.


Алгоритм - это строго детерминированная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд. Думаю что только слово «детерминированная», может вызвать вопросы. Это слово означает что алгоритм должен состоять из самых простых и однозначных действий, который способен выполнить исполнитель.


Пример: «сделай мне бутер», это не детерминированная команда.

«Отрежь хлеб», «отрежь колбасу», «положи колбасу на хлеб» - уже гораздо более детерминированные команды. Ведь согласитесь, бутер можно сделать и без колбасы или с колбасой и маслом.


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


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

Нейросети. Самый полный гайд. Часть 1 для чего нужны нейросети Нейронные сети, Нейроны, Самообразование, Программирование, Длиннопост, Видео

Теперь зная об алгоритмах, мы с вами должны ответить для себя на такой вопрос. Можно ли при помощи алгоритмов описать любую последовательность действий, которая не противоречит законам физики и математики. Пример: сможем ли мы написать алгоритм движения боевого шагающего паука-робота, если до этого были очень успешны в написании других алгоритмов. Ответ – да. Если выполнены два пункта из списка выше, то и третий не должен создать проблем. Давайте сейчас вместе попытаемся приступить к решению данной задачи. И всё по науке, по пунктам.


1. Исходные данные и результат.


Исходные данные: Робот – 1 штука. Ноги – 6 штук. Суставы на ногах – 3 штуки на каждой. Степени свободы у каждого сустава – по одной. Начальные координаты каждой ноги и сустава. Начальные углы в суставах робота. Начальная координата центра робота.


Результат: робот сместился на Х метров в указанном направлении.

Нейросети. Самый полный гайд. Часть 1 для чего нужны нейросети Нейронные сети, Нейроны, Самообразование, Программирование, Длиннопост, Видео

2. Формализация.


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


3. Написание Алгоритма.


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


4. Превратим всё это в строчки кода.


5. Зальём в голову микрочип робота.


6. Отправим робота на прогулку.


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


Ну не беда, теперь вы знаете что в начальные данные нужно внести массу, и все вычисления переписать с учётом нового параметра и заодно внести правки в алгоритм. Ок, сделано. Снова робот отправляется на прогулку. И ему случайно отстреливают правую переднюю ногу, это же боевой робот. Средняя правая нога ждёт результата от передней. Ведь она должна шевелиться после неё. Но от неё нет результата, у нас больше НЕТ правой передней ноги. Приехали, дальше робот не пойдёт. Теперь нужно переписать алгоритм, чтобы он работал без передней правой ноги. И конечно, без передней левой, и без средней задней. И без второй фаланги задней левой. И для каждого из этих случаев нам нужен НОВЫЙ алгоритм. Пускай и не радикально другой, но всё же новый. Итого нужно написать 100500 алгоритмов, и если какой то забыли, то это всплывёт в самый неподходящий момент.


Разумеется возникла идея создать такой алгоритм который мог бы подстроится к изменениям прям на ходу. Ведь паук в природе как то передвигается если ему оторвать ногу. Это и было зарождением нейросетей. По сути нейросеть – это такой алгоритм, который не нужно записывать в привычном понимании. Мы строим некую логическую конструкцию с начальными параметрами, а дальше она сама обучается, по каким-нибудь правилам, и принимает решение в каждом конкретном случае самостоятельно, исходя из старого опыта. История возникновения нейросетей отправляет нас прямиком к 1943 год, т.е. нейросети придумали сразу, как только появились ЭВМ. Но вот беда, в те времени один нейрон был размером с холодильник, а для серьёзных задач нейронов требовались сотни и даже тысячи. Почесав затылки, тогдашние программисты и инженеры сказали что мы и так всё сделаем без ваших нейросетей и отринули данную идею. Вновь к нейросетям вернулись только через 30 лет, за это время компьютеры шагнули невероятно далеко, на целых 4 поколения. В 71-м как вы помните, изобрели первый процессор. А в 75-м на этих крутейших по тем временам компам японский программист Кунихико Фукусима создал так называемый когнитрон – нейронную сеть умеющую выполнять логическую операцию «или». Вдумайтесь 30 лет от задумки да простейшей реализации.


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


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


Создание искусственного интеллекта – тоже пример использования нейросетей. Голова у Яндекс Алисы, или эпловской Сири, не из классических алгоритмов состоит, а из множества нейрончиков. Именно нейросети распознают вашу речь когда вы спрашиваете что то у гугла, и делают подборку песен, которая вам скорее всего понравиться. А ещё они всё больше вытесняет работников техподдержки, заставляя нас кричать в трубку: «Я хочу поговорить с человеком!». Если честно, всего 6 лет назад когда я смотрел фильм «Элизиум: Рай не на Земле», я и представить не мог себя в ситуации когда я буду спорить с роботом, и просить его переключить на человека. Но я думаю что с подобной проблемой сталкивались уже многие. Сейчас способности ИИ, оставляют желать лучшего, но скорость развития этих гомункулов поражает. И спустя те же 6 лет, человек в тех поддержке будет такой же редкостью, как сегодня использование DVD-дисков.


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

Лига образования

6.2K поста22.6K подписчика

Правила сообщества

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


ДЛЯ АВТОРОВ:


Приветствуются:

-уважение к читателю и открытость

-желание учиться

Не рекомендуются:

-публикация недостоверной информации


ДЛЯ ЧИТАТЕЛЕЙ:


Приветствуются:

-конструктивные дискуссии на тему постов

Не рекомендуются:

-личные оскорбления и провокации

-неподкрепленные фактами утверждения


В этом сообществе мы все союзники - мы все хотим учиться! :)

22
DELETED
Автор поста оценил этот комментарий

"Самый полный гайд" и на середине "подробнее мы поговорим, как нибудь в другом выпуске"
Обычное видео из ряда "ГАЙДОВ" типа:
"1 часть мы разберем интерфейс"
"2 часть мы научимся пользоваться кнопками"

"2.1 часть мы научимся заходить в подменю"

"3 часть мы научимся делать примитивы"

и больше этот канал ничего про это не снимает, так как надоело, времени нет, кот съел компьютер...

Таких гайдов как этот миллион только на русском языке. Ну как обычно слова "Самый полный" - полный пиздёж.

раскрыть ветку
2
Автор поста оценил этот комментарий

Я ишо помню ужо те времена, когда нейросети окоянные просто программами называли. Давно енто было..

раскрыть ветку
0
Автор поста оценил этот комментарий

Из-за музыки в ролике не смог досмотреть до конца, очень отвлекает.

0
Автор поста оценил этот комментарий

Тут есть маааленькая загвоздочка во втором этапе-не все задачи поддаются формализации. Причем те которые представляют наибольший интерес-интеллектуальные, абстрактные и проч. Понятно что для выполнения рутинных задач программа подходит наилучшим образом и она с этим справляется лучше человека. Но во как-бы не называли алгоритм выполнения или нахождения решения нейронной сетью или как-то еще, суть остается той же - машина и в том числе нейронная сеть есть формальный исполнитель алгоритмов. И пока до реального искусственного интеллекта очень и очень далеко. Все идет в направлении набора максимального количества знаний и наилучшего выбора из всего этого. Но, справедливости ради надо сказать, что и в этом направлении результаты впечатляют. В конце концов может и человек кажется умным только за счет того что у него есть опыт и знания, которые он получал с годами, ведь с рождения он также ничего не знал.Тогда получается что в сторону искусственного интеллекта мы все-таки  движемся быстрее чем это может показаться.)

1
Автор поста оценил этот комментарий

Добрый день. Не хотели бы вы перенести пост в сообщество "Машинное обучение"?
Мне кажется, там он будет уместнее :)

раскрыть ветку