Как работает нейронная сеть. Объясняю принцип её работы простым языком.
Про нейронные сети сейчас слышно почти везде. DeepNude и FaceApp про которые я уже писал работают с использованием нейронной сети. Хотите понять как они работают? Тогда прочитайте эту статью. Ведь что такое нейронная сеть я объясню вам простым языком. И по возможности кратко. И да — это просто.
Немного биологии
В нашем мозге есть нейроны. Их около 86 миллиардов. Нейрон это клетка, соединенная с другими такими клетками. Клетки соединены друг с другом отростками. Всё это вместе напоминает своего рода сеть. Вот вам и нейронная сеть. Каждая клетка получает сигналы от других клеток. Далее обрабатывает их и сама отправляет сигнал другим клеткам.
Проще говоря нейрон получает сигнал (информацию), обрабатывает его (что то там решает, думает) и отправляет свой ответ дальше.
Вот так передавая друг другу сигналы, нейронная сеть приходит к какому либо решению. А мы то думали, что мы единолично все решаем! Нет, наше решение — это результат коллективной работы миллиарда нейронов.
На моей картинке стрелки обозначают связи нейронов. Связи бывают разные. Например стрелка внизу между нейроном 2 и 5 длинная. И значит сигнал от нейрона 2 до нейрона 5 будет дольше идти, чем например сигнал от нейрона 3 где стрелка вдвое короче. Да и вообще сигнал может затухнуть и прийти слабым. В биологии много всего интересного.
Но рассматривать всё это — как там думает нейрон, затухнет ли сигнал, когда он придет или не придет в IT не стали. А что голову морочить? И просто построили упрощенную модель. В этой модели можно выделить две основные составляющие:
1) Алгоритм. В биологии нейрон думает. В программировании «думанье» заменяется алгоритмом — то есть набором команд. Например — если на вход пришла 1 отправь 0. Вот и все «мозги» нашего нейрона.
2) Вес решения. Все связи, затухания и т.д. решили заменить «весом». Вес это как сила решения, его важность. Это просто величина, чаще число. Нашему нейрону приходит решение с определенным весом, нашему нейрону приходит число. И если оно больше другого пришедшего числа то оно важнее. Это как пример.
Итого есть алгоритм и есть вес решения. Это всё что нужно для построения простейшей нейросети.
Пусть человеку надо решить, идет ли он гулять или нет. Он очень любит гулять в солнечные дни. Или в выходные дни, когда у него много времени. Но он не любит гулять под дождем. Нейросеть будет примерно такая.
В данном примере вес решения (1 или 0) и само решение (информация) совпадают. Наша 1 — и вес и решение. Это для простоты.
Если на улице солнце, то человек всегда пойдет гулять. Вот настолько он любит солнечные дни. А вот если на улице дождь, то в рабочий день он посидит дома. Нечего тратить время на короткие прогулки под дождем. А вот в выходной день, даже если идет дождь, он пойдет гулять. Времени много — некуда девать, ведь не рабочий же день.
Вот просто и кратко об идеи нейросети. Как и обещал.
Дальше информация для общего ознакомления и уже придется немного поднапрячься. Можно и не читать, поберегите свой мозг )
Я замечу, что идея нейросети проста. Она выше. Но её реализация бывает крайне сложной. Я же вам привел простейший пример.
Сложности настоящей нейросети возникают из за количества её связей, из за логики её связей. Например как на рисунке ниже. И это тоже не самый сложный пример.
Часто значение решения и его вес не совпадают. Например вес решения равен 1, а его значение 20. И нейрон решает, а стоит ли ему вообще рассматривать это решение. Вес то маловат. И если стоит, то принимает значение 20 и работает с ним. Если нет, то может и отбросить — «пришло что то не важное, ещё время на это тратить».
Также часто одно решение влияет на другое, изменяя их веса. Пусть нейрон №1 готов передать решение весом в 1 и значением 2, и нейрон №2 готов передать решение весом 1 и значением 2. Тогда вес решения нейрона №1 будет равен 3 и вес решения нейрона №2 будет равен 3.
То есть в результате определенного результата решений 2х нейронов вес их решений увеличился. (Своего рода комбо, бинго, произошла «выигрышная ситуация») И к следующему нейрону эти решения придут с большим весом. Важные решения.
Например если систолическое давление у пациента ниже 90 мм рт. ст. и наблюдается тахикардия, то это важно. Проблемы с сердцем, например. И вес решений, информации должен быть увеличен.
А если давление у пациента ниже 90 но нет тахикардии или есть тахикардия но давление в норме — то это не так важно. Как вариант — метеозависимость. И вес решений остается прежний.
Ну и напоследок, разумеется алгоритм нейрона тоже может быть крайне сложным, а не простое «если-то». Вот так информационные нейросети способны эмулировать работу живых организмов. И это у них получается всё лучше и лучше.
Если вам понравилась эта статья и вы даже поняли как работает нейросеть, то ставьте лайк. А ещё можно и подписаться на канал. Ведь рано или поздно, я напишу ещё много интересной научной информации простым языком. Или вы можете оставить свой комментарий к этой статье. Я всегда стараюсь отвечать на ваши комментарии.