Учимся обучать нейронные сети, за 30 минут от теории до практики.

  Рет қаралды 183,252

Kovalevskyi Academy

Kovalevskyi Academy

Күн бұрын

Пікірлер: 520
@EXPBET
@EXPBET 6 жыл бұрын
смотрю второе видео по данной теме.... сложилось четкое нейронное убеждение, что друг который все время говорит что ему понятно... на самом деле нихуа не понимает))))
@elxanelxanov258
@elxanelxanov258 4 жыл бұрын
U MENA TAKOYE JE OSUSENIYE
@АрсенийКривецкий
@АрсенийКривецкий 4 жыл бұрын
@@elxanelxanov258 Alt + Shift и Caps Lock
@donrumata5299
@donrumata5299 4 жыл бұрын
@@АрсенийКривецкий Win+Space
@gleb_bro8710
@gleb_bro8710 4 жыл бұрын
@@donrumata5299 alt + f4 или ctrl + w
@danya151mail
@danya151mail 3 жыл бұрын
++, мог бы много хороших вопросов позадавать
@alyukovnet
@alyukovnet 7 жыл бұрын
Делаю проект, связанный с нейронными сетями. Этот ролик всё понятно поясняет. Пока не нашёл аналогов в русском Ютубе. Большое спасибо
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Спасибо!
@amalyshok
@amalyshok 6 жыл бұрын
привет. как успехи с проектом? тоже заинтересовался этой идеей. сейчас собираю крупицы знаний в русскоязычных источниках. интересно было бы пообщаться с человеком, который уже через все это прошел)
@kotnetrezviy
@kotnetrezviy 6 жыл бұрын
import numpy as np import sys class PartyNN(object): def __init__(self, learning_rate=0.1): self.weights_0_1 = np.random.normal(0.0, 2 ** -0.5, (2,3)) self.weights_1_2 = np.random.normal(0.0, 1, (1, 2)) self.sigmoid_mapper = np.vectorize(self.sigmoid) self.learning_rate = np.array([learning_rate]) def sigmoid(self, x): return 1 / (1 + np.exp(-x)) def predict(self, inputs): inputs_1 = np.dot(self.weights_0_1, inputs) outputs_1 = self.sigmoid_mapper(inputs_1) inputs_2 = np.dot(self.weights_1_2, outputs_1) outputs_2 = self.sigmoid_mapper(inputs_2) return outputs_2 def train(self, inputs, expected_predict): inputs_1 = np.dot(self.weights_0_1, inputs) outputs_1 = self.sigmoid_mapper(inputs_1) inputs_2 = np.dot(self.weights_1_2, outputs_1) outputs_2 = self.sigmoid_mapper(inputs_2) actual_predict = outputs_2[0] error_layer_2 = np.array([actual_predict - expected_predict]) gradient_layer_2 = actual_predict * (1 - actual_predict) weights_delta_layer_2 = error_layer_2 * gradient_layer_2 self.weights_1_2 -= (np.dot(weights_delta_layer_2, outputs_1.reshape(1, len(outputs_1)))) * self.learning_rate error_layer_1 = weights_delta_layer_2 * self.weights_1_2 gradient_layer_1 = outputs_1 * (1 - outputs_1) weights_delta_layer_1 = error_layer_1 * gradient_layer_1 self.weights_0_1 -= np.dot(inputs.reshape(len(inputs), 1), weights_delta_layer_1).T * self.learning_rate def MSE(y, Y): return np.mean((y-Y)**2) train = [ ([0, 0, 0], 0), ([0, 0, 1], 1), ([0, 1, 0], 0), ([0, 1, 1], 0), ([1, 0, 0], 1), ([1, 0, 1], 1), ([1, 1, 0], 0), ([1, 1, 1], 1), ] epochs = 5000 learning_rate = 0.05 network = PartyNN(learning_rate=learning_rate) for e in range(epochs): inputs_ = [ ] correct_predictions = [ ] for input_stat, correct_predict in train: network.train(np.array(input_stat), correct_predict) inputs_.append(np.array(input_stat)) correct_predictions.append(np.array(correct_predict)) train_loss = MSE(network.predict(np.array(inputs_).T), np.array(correct_predictions)) sys.stdout.write(" Progress: {}, Training loss: {}".format(str(100 * e/float(epochs))[:4], str(train_loss)[:5])) for input_stat, correct_predict in train: print("For input: {} the prediction is: {}, expected: {}".format( str(input_stat), str(network.predict(np.array(input_stat)) > .5), str(correct_predict == 1))) for input_stat, correct_predict in train: print("For input: {} the prediction is: {}, expected: {}".format( str(input_stat), str(network.predict(np.array(input_stat))), str(correct_predict == 1)))
@АндрейВойтеховский-р4и
@АндрейВойтеховский-р4и 4 жыл бұрын
Лучший. Спасибо.
@SuleimanVatrushkin
@SuleimanVatrushkin 4 ай бұрын
Спасибо большое!
@sergeykorshunov9508
@sergeykorshunov9508 7 жыл бұрын
Самые толковые примеры из того, что мне до сих пор доводилось видеть. Спасибо!
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
и вам спасибо, будем очень благодарны если поможете распространить =)
@taraun5258
@taraun5258 7 жыл бұрын
Очень подробное и самое лучшее описание нейросетей что я смог найти. Немного непривычно читать питон, и не люблю видео, ибо когда пытаешься сам что то сделать проще работать с текстовой информацией. Огромное Вам спасибо за курс. Надеюсь он будет продолжаться.
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
+Александр Петров и Вам спасибо ! Будем признательны за помощь с распространением:)
@KlimKovalenko
@KlimKovalenko 7 жыл бұрын
Пожалуй это лучшее толкование на русском языке, спасибо большое)
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
И вам спасибо большое!
@MrGerser
@MrGerser 6 жыл бұрын
Пожалуй лучше было бы слышать монолог. Глеб тут явно лишний.
@MisterKoK22
@MisterKoK22 5 жыл бұрын
@@MrGerser ничуть не лишний. Он как индикатор. Раз головой кивает, значит и другие слушатели будут понимать.
@infinity_eror
@infinity_eror 4 жыл бұрын
Поддерживаю - самое толковое видео.
@KiraLis39
@KiraLis39 4 жыл бұрын
@@MisterKoK22 да ничерта не понятно никому, и ему самому, похоже. херовый индикатор либо просто бесит.
@danyalmugutdinov7283
@danyalmugutdinov7283 7 жыл бұрын
Отличная идея с математикой. Просто изучать математику довольно скучно и если вы будете делать уроки по ML , оставляя ссылки на видео с объяснением применных математических терминов , то это будет просто изумительно. В общем я считаю, что имеет место делать уроки по математике в контексте ML
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Думаем начать с урока о чем то простом вроде операций над векторами и том как numpy это упрощает а то возможно код может показаться немного непонятным при первом изучении.
@silentnight.official4261
@silentnight.official4261 3 жыл бұрын
Хороший формат, формирует интуиции для дальнейшего углубления в тему. Детали лучше понимаешь на родном языке, как ни крути.
@ilyakiselev113
@ilyakiselev113 7 жыл бұрын
Впервые вижу такой качественный контент по нейронным сетям! Я пошел учить питон...
@danyalmugutdinov7283
@danyalmugutdinov7283 7 жыл бұрын
Поделюсь, расскажу друзьям, покажу девушкею. Что угодно, только продолжай , прошу тебя =)
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Спасибо большое, чем больше просмотров тем больше у нас стимула продолжать делать видео на эту тему =)
@sticktogether2326
@sticktogether2326 5 жыл бұрын
Переписал эту нейронку (пришлось потратить немало времени на понятие синтаксиса Python) на С++. При тех же вводных (5000 поколений и 0.08 learning_rate) ошибка сети на выходе 0.003. Спасибо огромное тебе за очень понятное объяснение. В ру сигменте найти человека, который так подробно может разжевать что и как делается - как иголку в стоге сена искать.
@LS-oh6po
@LS-oh6po Жыл бұрын
У меня тоже все получилось!!!! Как интересно. Я правда очень простую программку на Питоне написал (только неделю назад изучил как на нем программировать), но все получилось. . 5000 итераций и learning rate 0.05. Огромное спасибо авторам за такое простое и гениальное объяснение непростого материала!!!
@Поворотна180
@Поворотна180 3 жыл бұрын
Ну наконец-то я увидел и услышал про функцию активации в понятной форме, спасибо автору. Для новичков супер! 3 месяца искал нормальное толкование!
@mirlaniusUMK
@mirlaniusUMK 7 жыл бұрын
Отличнейший урок про нейросеть! Спасибо большое
@1000milliwatt
@1000milliwatt 7 жыл бұрын
Лучшее видео, чтобы понять что такое нейросеть, и как работает метод с нуля. Краем глазом просматриваю подобные видео давно, но именно понял как работает это метод только с этим виде.
@Iknowwhoateallthedonutsfromthe
@Iknowwhoateallthedonutsfromthe 4 жыл бұрын
Блин, по такому хорошему рассуждению можно даже нейронку в Scratch забацать! Классно)
@KovalevskyiAcademy
@KovalevskyiAcademy 4 жыл бұрын
want to record this and upload on this channel;)?
@Iknowwhoateallthedonutsfromthe
@Iknowwhoateallthedonutsfromthe 4 жыл бұрын
@@KovalevskyiAcademy When i will can - i will)
@sergeychaban3321
@sergeychaban3321 5 жыл бұрын
Благодарю за доходчивое изложение и реальный пример обучения нейросети. Повторил всю методологию обучения нейросети из Вашего примера, но на Delphi 7. Правда, писал более универсальный и "тяжелый" код, под свои собственные задачи. Нейрон был описал отдельным классом, дабы потом можно было создавать произвольный массив из нейронов. В результате программа на Delphi те же 4000 эпох из примера "отработала" за 15 секунд (в Вашем примере на Питоне около 6 секунд). Оно может дело и в железе (у меня Celeron G1820 2.7GHz), но не думаю, что "причесывая" делфийский код, мне удастся сократить время выполнения в 2.5...3 раза. Т.е. налицо имеет место быть факт "заточенности" Питона под нейросети.
@vladimirleonenko6284
@vladimirleonenko6284 4 жыл бұрын
Одно из лучших демо нейросети, еще есть несколько других уроков, которые вместе позволяют хорошо усвоить тему
@sergeydemidov1112
@sergeydemidov1112 4 жыл бұрын
Ребят, спасибо вам большое. Я около десяти видео просмотрел, что бы это найти. Обучение нигде не объясняют. Все или в магию готовых библиотек уходят или просто молча опускают. Очень понятно. Даже если не понимать что такое сигмоида и производная :)
@vadimpervouralsk
@vadimpervouralsk 7 жыл бұрын
Спасибо чувак, первый раз нормальное объяснение нашёл
@syntes5681
@syntes5681 5 жыл бұрын
Мне бы такого друга, который может слушать рассказ в течение получаса и более )
@NoodLez0000
@NoodLez0000 6 жыл бұрын
Пока что, лучшее обьяснение метода обратного распространения ошибки, которое встречал в интернете.
@tehhasrussian5714
@tehhasrussian5714 Жыл бұрын
Спасибо за подробный обзор работы сети и формул! Но возникли вопросы: - как проводить обучение нейросети,если ожидаемое значение неизвестно,например при прогнозировании погоды? - где можно увидеть ваш код нейронки?
@ДмитрийМолчанов-р2б
@ДмитрийМолчанов-р2б 11 ай бұрын
Тебе нужно рассмотреть все возможные варианты и добавить их на выход. Входные нейроны это условия/среда за которыми нейросеть наблюдает, что бы понять какой будет погода
@filinsstudio7530
@filinsstudio7530 7 жыл бұрын
Вобщим зацепила меня эта тема сильно, так как я сам начал писать алгоритм обратного распространения ошибки для многослойной сети. Чтож, понятное дело, я увидел множество неоднозначных проблем для себя, решение которых к стате я вижу по своему. Поэтому я сам ухожу на некоторое время в глубокое обучение, начинаю подымать литературу по этому вопросу, дабы повысить свой интелект для решения этой задачи.
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Очень хороший ход =)
@N1nemaN
@N1nemaN 7 жыл бұрын
Лучшее на русском, что смог найти. Благодарю. Продолжайте!
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Спасибо!
@1stface
@1stface 4 жыл бұрын
Спасибо парням за видео. Пожалуй , изложение материала понятней чем здесь , я нигде не видел. Возможно , в силу своей восприимчивости. Наконец-то бахнул свою первую нейронку для игрового бота, счастью нет предела))
@drimeF0
@drimeF0 4 жыл бұрын
Лучший курс в мире, все понятно и ясно. Спасибо за курс
@retret4538
@retret4538 6 жыл бұрын
ДА ТЫ ПРОСТО БОГ АЛО СТОЛЬКО САЙТО И ВСЁ НЕПОНЯТНО КАК ТЫ ДОЛЖЕН ЗАПИСАТЬ ЭТИ ФОРМУЛЫ, А ТЫ ПРЯМ ПО ПАЛЬЦЕМ НА ПАЛЬЦАХ В 100 СТЕПЕНИ РАСФОРМУЛИРОВАЛ СПАСИБО МОЛОДЕЦ АЛЛО ЛУЧШИЙ
@vadimzaytsev7176
@vadimzaytsev7176 7 жыл бұрын
перечитал кучу литературы и видео но только после вашего понял что к чему одним словом супер!
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
+Vadim Zaytsev спасибо :)!
@ukratitelkisok9726
@ukratitelkisok9726 Жыл бұрын
Определённо лучшие видео в русском ютуб, спасибо
@АндрейИванцивский
@АндрейИванцивский 7 жыл бұрын
Круто!Нечасто можно найти такой полезный контент.Однозначно лайк
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Спасибо!
@alexk5636
@alexk5636 7 жыл бұрын
Мега круто . Хочу еще . Больше примеров . Тема зашла, было интересно.Спасибо большое. Интересен был бы пример с определением того что находится на изображении. P.S. Жаль в универе мне не так статы и кванты объясняли.
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Спасибо большое. А в какомы вы универе?
@alexk5636
@alexk5636 7 жыл бұрын
Одесский национальный университет, физический факультет . Уже окончил. Решил расширить горизонты и изучить Java в чем ваши курсы несомненно помогают, а тут еще и тема интересная.
@ЕвгенийЛопаткин-ю9с
@ЕвгенийЛопаткин-ю9с 7 жыл бұрын
Большое спасибо. Очень помогает разобраться с основными принципами.
@ГенаКрок-з9д
@ГенаКрок-з9д 7 жыл бұрын
Видео очень понравилось! Никогда не думал, что с помощью математических формул можно делать такие выкрутасы с обучением. Было бы идеально, если бы код был бы ещё и на других языках вроде С++, если это, конечно сильно не затруднит. Спасибо.
@Roman_Gennadevich
@Roman_Gennadevich 3 жыл бұрын
А смысл??? Тут суть есть, осталось только переписать через нужный язык.
@АндрейВойтеховский-р4и
@АндрейВойтеховский-р4и 4 жыл бұрын
Было бы неплохо продолжить данную тему, очень хороший спрос.
@VirtualSUN
@VirtualSUN 7 жыл бұрын
Фух-х-х... Спасибо. Пересмотрел это видео до "дыр". Уже несколько дне ничего не получалось. НС не хотела учится... Сделал так, чтоб можно было указывать количество слоёв и нейронов в них. Только, что нарисовал все эти "пути" обучения... Ну, короче, Я морознул малость еще в самом начале. :) Но все получилось! Даже может предсказывать значения не из выборки. :)
@ИльяГайдуков-ш1ц
@ИльяГайдуков-ш1ц 3 жыл бұрын
Спасибо за материал. Кто-нибудь, объясните что такое "дифференциал производная сигмоиды" в расчете дельты весов... В уравнении показано произведение функции сигмоиды на приращение её аргумента. Не понимаю.
@theos1489
@theos1489 6 жыл бұрын
11:15 sigmoid(x)dx = f'(x)dx, в такой записи сигмоида - уже производная при дифф. 1- форме. Правильно так - sigmoid'(x)dx=sigmoid(x)(1-sigmoid(x))dx
@hikkarion
@hikkarion 7 жыл бұрын
Отличные уроки, было бы вообще круто, если бы это вылилось в полноценный курс с разбором современных библиотек глубокого обучения и реальными кейсами! Пока самые понятные объяснения, которые я слышал, ну и Ng конечно тоже хорош, но у него Octave( , а тут сразу на актуальном языке было бы вообще отличной.
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
На это пока что времени нету, но когда то на базе Хекслета возможно появиться =)
@easyelectronicsru
@easyelectronicsru 7 жыл бұрын
ну хотя бы простенький примерчик, вроде шняги которую можно было бы обучить отличать круг от квадрата, например.
@ThA891
@ThA891 4 жыл бұрын
просто охренеть! Автора в рай!
@vitalikvitalik9765
@vitalikvitalik9765 7 жыл бұрын
Вот это я понимаю, понятно и с примерами!!! пойду смотреть дальше и показывать всем =)
@orthodox_channel
@orthodox_channel 2 жыл бұрын
Добрый день, дайте пожалуйста ссылку на материал по производным.
@torbokovsanat
@torbokovsanat 3 жыл бұрын
респект за видео, отдельно за юмор ))) 8:45 - запихиваем незапихуемое )))
@fedorchernolutsky146
@fedorchernolutsky146 6 жыл бұрын
Чего-то голова уже не работает. Видео супер!)
@gentleNES
@gentleNES 7 жыл бұрын
Выложите, пожалуйста, исходный код сети с обучением. В видео предлагаете самим пройти по строчкам и все разобрать, чтобы было понятнее!
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
s3-us-west-1.amazonaws.com/youtube-channel/nn_training_2_layer_network.ipynb - готово =)
@murikoz5399
@murikoz5399 7 жыл бұрын
а куда это нужно "запихать" чтобы было в читабельном виде? а за видосы большие пальцы вверх. спасибо
@alyukovnet
@alyukovnet 7 жыл бұрын
Это формат jupiter notebook. Закидываешь сюды try.jupyter.org
@MrAkvalar
@MrAkvalar 7 жыл бұрын
я так понимаю это для линукса?
@kirylkudrautsau896
@kirylkudrautsau896 7 жыл бұрын
Господа, сегодня знаменательный день. Стало понятно! Огромное спасибо за материал.
@slavas9200
@slavas9200 5 жыл бұрын
Спасибо огромное! Наконец, по теме, а то везде сплошная реклама облаков с черными ящиками.
@DrLugaro
@DrLugaro 6 жыл бұрын
Боже мой, дня 3 не мог понять почему сеть не сходится, столько всего перечитал, а это видео вообще по секунде помню.. Один мать его символ!! При подсчете весов первого слоя в цикле проходил не по 3 элементам, а по 2вум, банальная опечатка... и самое забавное что сеть ошибалась примерно на 90% Автору видео большое спасибо, из того что я видел, это пожалуй лучшее вводное видео для понимания "Как это работает"
@HellbringerOnline
@HellbringerOnline 7 жыл бұрын
А зачем нужен чувак, которому всё понятно и всегда говорит да? =) Хотя бы поспрашивал мол веса что такое поподробнее можно?.
@СтасСавинкин
@СтасСавинкин 3 жыл бұрын
Отличное видео, не скажу что все объясненно досконально но разобраться очень помогло. Спасибо!
@vvv228
@vvv228 5 жыл бұрын
Респект тобі! Якби не ці відоси, я б не розібрався. Лайк!
@dmitriytyurnin4605
@dmitriytyurnin4605 7 жыл бұрын
Браво! Отправил друзьям!
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
+Dmitry Tyurnin спасибо!
@IgorAherne
@IgorAherne 7 жыл бұрын
ребята, много вопросов в коментариях по-поводу того "как распространять ошибку на болеее глубокие уровни" Вот на простом языке: Будет проще если абстрагировать механизм; Финальная ошибка всей сети это огромная функция, которая зависит от множества параметров (всех весов и всех активаций наших нейронов) Чтобы минимизировать ее, нам нужно понять куда подкрутить ее параметры, найдя специально значение для каждого такого параметра. Допустим у нас 3 слоя в которых 2,2,1 нейронов соответственно. То есть (2 + 2*2 + 2)весов и (2+2+1)активаций самих нейронов = 8 весов и 5 нейронов Легко предположить что Финальная Ошибка зависит от 8 + 5 параметров. Однако это неверно. Вместо этого, нам лучше представить Финальную ошибку как функцию зависящую только от 1го параметра. Она зависит от активации последнего нейрона и не от чего более. После этого важно понимать, что этот финальный нейрон - это тоже функция. Она зависит от 4х параметров. От активации нейрона1 с предыдущего слоя и его веса, а также активации нейрона2 и его веса. *"как распространять ошибку на болеее глубокие уровни"* На этом история не заканчивается, нейрон1 это функция зависящая от субНейрона1 и субНейрона2, которые со слоя ниже. тоесть нейрон1 зависит от 4 параметров (из 2 весов и 2х активаций) нейрон2 (собрат нейрона 1) это функция зависящая от субНейрона1 и субНейрона2, которые со слоя ниже. тоесть нейрон2 зависит от 4 параметров (из 2 весов и 2х активаций) заметь, что нейрон1 и нейрон2 вроде-бы зависят от одинаковых параметров (из 2 весов и 2х активаций субНейрона1 и субнейрона2), однако это обманчиво. вес и активация субНейрона1 изначально влияла отдельно на нейрон1 и отдельно на нейрон2. Та же ситуация и с субНейроном2, который тоже влиял отдельно на нейрон1 и отдельно на нейрон2. *Поэтому, мы их расцениваем как 8 отдельных параметров, а не как 4 shared. Иными словами, нейрон1 зависит от 4х параметров, и нейрон2 зависит от своих 4х параметров)* Вобще, со всеми этими вложенными функциями, лучше всего нарисовать диаграмму-дерево, где каждый параметр (даже если это функция) это веточка *ответ: советую нарисовать диаграмму* Внимание на цифры, тут никакой опечатки нет: ошибка для активации к субнейрону1 = (ошибка пропихнутая через производную сигмоида нейрона1)*весНейрон1Субнейрон1 + (ошибка ошибка пропихнутая через производную сигмоида нейрона2)*весНейрон2Субнейрон1 После этого пропихиваем ее через производную сигмоида СубНейрона1 (как показанно в видео) и пихаем до весов под субНейроном1 (как показано в видео) *ключевая фраза* Это так потому что активация субНейрона1 (будучи одним и тем же значением) отдельно повлияла на исход (на результат Финальной Ошибки в стадии предугадывания), через нейрон1 и через нейрон2 (став параметром для каждого из них)
@максимн-о8м
@максимн-о8м 5 жыл бұрын
никогда больше не берись ничего объяснять, не твое это. Тебя поймут только те, кто и так уже без тебя разобрался, а те кто не в теме, тебя не поймут. Не учитель ты
@egormarkin858
@egormarkin858 3 жыл бұрын
Объясняет очень сложную вещь как на духу!! Спасибо
@Mar_chella
@Mar_chella Жыл бұрын
Супер! Очень понятный и полезный контент . Благодарю автора
@Xpect1337
@Xpect1337 6 жыл бұрын
Potryasayusheye video!! Ogromnoe spasibo!
@nurlannurmash4155
@nurlannurmash4155 2 жыл бұрын
Спасибо вам за видео, лучшие!
@孫悟空-m9p
@孫悟空-m9p 7 жыл бұрын
наконец то нормальное видео по нейронным сетям
@musicits_fun
@musicits_fun 7 жыл бұрын
А рекурентные сети так же подробно будут? :)
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
Да =)
@slysuslik
@slysuslik 6 жыл бұрын
Просто супер и все понятно! Спасибо за такие интересные и понятные видео!
@stepankhalatyan
@stepankhalatyan 7 жыл бұрын
Запиши, пожалуйста, такое же понятное обьяснение про обучение без учителя!)
@ashwhwhdh
@ashwhwhdh Жыл бұрын
Подскажите, а данный алгоритм подходит для обучения нейросети распознаванию цифр ? В случае если несколько выходных нейронов, схема таже самая ?
@mr.goldenman2403
@mr.goldenman2403 Жыл бұрын
спасибо вам большое, у вас самое понятное объяеснение, которое я нашел
@alexpaskal8345
@alexpaskal8345 5 жыл бұрын
Спасибо огромное! Это поистине самое понятное объяснение
@Riderwin
@Riderwin 7 жыл бұрын
Очень интересно, огромное спасибо ! , надеюсь это не последнее видео )
@sergeynovikov9607
@sergeynovikov9607 6 жыл бұрын
Выставил epochs = 20 learning_rate = 10 - выдаёт быстрый(!) уверенный(!) правильный(!) результат. Осталось лёгкое недопонимание, для чего мизеный rate и огромное количество эпох. В остальном всё доступно, спасибо! 0.14471012 0.8990462 0.02167833 0.02906413 0.89904785 0.95189885 0.02881517 0.05931123
@sergeynovikov9607
@sergeynovikov9607 6 жыл бұрын
Даже epochs = 10 learning_rate = 10 уверенно отрабатывает
@alexeykonyagin9916
@alexeykonyagin9916 7 жыл бұрын
Отличный урок, спасибо!
@РоманМышко-ж2г
@РоманМышко-ж2г 6 жыл бұрын
Спасибо! Наконец-то понял про нейронные сети
@Blade_Ruiner
@Blade_Ruiner 2 жыл бұрын
Все уроки по обратной ошибке поделились на два лагеря: у одних ошибка - это "Что получилось" минус "Что ожидалось", у других - наоборот. Приходится работать с двумя вариантами и долгими ночами искать верный.
@IT_business_in_Russia
@IT_business_in_Russia 6 жыл бұрын
Спасибо за Ваш труд, все очень подробно и понятно
@МихаилБурмистров-е3б
@МихаилБурмистров-е3б 7 жыл бұрын
Если я правильно помню, тот же Ng постоянно говорит, что корректировка весов должна производится одновременно. То есть скорректировать веса мы можем только после того, как посчитаем все ошибки. Иначе у нас на коррекцию предыдущего скрытого слоя появлияет коррекция текущего, хотя ошибка была получена при нескорректированном весе.
@dimadovg2824
@dimadovg2824 5 жыл бұрын
Спасибо большое. Очень наглядно. Единственный минус - в видео показано обратное распространение ошибки только для выходного слоя. Для скрытых слоев пришлось искать информацию ещё где-то
@Hunter6745
@Hunter6745 6 жыл бұрын
а какую дельту брать? ну например у нас несколько выходных нейронов
@Волчара-п3о
@Волчара-п3о 6 жыл бұрын
Я себе так и представлял нейросеть, но вот обратный анализ это круто, можно сделать ещё интересней, но это на примере другом разбирать нужно, где больше трёх вариантов.
@incinerate5401
@incinerate5401 7 жыл бұрын
Приветствую, Вячеслав! Отличные видео! Можете подсказать материалы, по которым можно разобраться основательнее и подробнее с темами нейронных сетей и машинного обучения? Я знаю про курсы на stepic, coursera, EdX, может ещё что-то? Что-то, что может сделать из меня джедая deep learning'a?)
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
www.deeplearningbook.org =)
@incinerate5401
@incinerate5401 7 жыл бұрын
Спасибо, с нетерпением жду новых видео!)
@Destrovi4
@Destrovi4 7 жыл бұрын
Как будет проходить обучение если скрытых уровней больше чем 1? В этом случае получается что у нейрона несколько ошибок.
@Kavicon
@Kavicon 7 жыл бұрын
Да, действительно, Вячеслав не упомянул о дальнейшем распространение ошибки, но тут описан этот момент самым понятным способом. Математики вообще нету что делает это понятным сразу, для даже не разбирающемся в этом человека. robocraft.ru/blog/algorithm/560.html
@IgorAherne
@IgorAherne 7 жыл бұрын
Финальная ошибка это механизм зависящий от выхлопа нейрона в последнем уровне; нейрон в последнем уровне (-1) это тоже механизм (попроще), который зависит от двух нейронов в предыдущем уровне (-2) Каждый такой нейрон на предыдущем уровне (-2) это тоже механизм, результат которого зависит от того что дали нейроны из еще более старого уровня (-3) Таким образом, получаеться что финальная ошибка зависит от всех вложенных друг в друга механизмов; Ошибка у нейрона остается такой же, но если мы спускаемся на более глубокие уровни, для тех нейронов она "обрастает" дополнительными ошибками
@БатончикСникрес
@БатончикСникрес 7 жыл бұрын
Спасибо большое, очень доходчиво рассказано) Лайк, подписка)
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
+Батончик Сникрес спасибо:)!
@dosxanzada
@dosxanzada 6 жыл бұрын
Так круто объясняешь, первое видео совсем улёт, то что я не мог понять за один семестр понял всего лишь за пол часа. А здесь у меня вопрос, откуда появился 0.5 и 0.52? Это тоже рандомно?
@eduardsukhavenka9750
@eduardsukhavenka9750 5 жыл бұрын
Yes
@victorbasanets2939
@victorbasanets2939 7 жыл бұрын
Здравствуйте. Я наверное что-то путаю но вопрос следующий, выражение типа sigmoid(x) dx означает производную функции sigmoid или её дифференциал? Если первое то что тогда d sigmoid / dx, так как выражение sigmoid(x) (1 - sigmoid(x)) это результат вычисления производной данной функции
@MrAkvalar
@MrAkvalar 7 жыл бұрын
а производная и дифференциал это не одно и то же?
@user-xl2tf4gq1g
@user-xl2tf4gq1g 4 жыл бұрын
@@MrAkvalar одно и то же
@ezelzip2309
@ezelzip2309 5 жыл бұрын
Создайте еще одно обучение, как эту нейросеть интегрировать в бота? И как сделать вводные по голосу?
@Roman_Gennadevich
@Roman_Gennadevich 3 жыл бұрын
Надо сначала выучить пару алгоритмов и библиотек и вопросов не будет
@НикитаИванов-ъ4й
@НикитаИванов-ъ4й 7 жыл бұрын
Здравствуйте! Большое спасибо за очень интересный и понятный материал! Почти все усвоил с первого просмотра)) Но пожалуйста, подскажите каким образом считать ошибку если например в выходном слое несколько нейронов? Как я понял выходной слой считается так-же как и у вас, а вот что делать со скрытыми/входным? Пока на уме крутится мысль в цикле считать ошибку для нейронов текущего слоя на основании каждого нейрона следующего, но интуиция подсказывает что из этого получится что-то некорректное. Подскажите пожалуйста, как будет правильно?
@andrewzabara68
@andrewzabara68 4 жыл бұрын
Давайте материал по физическому смыслу производной!
@Herclia
@Herclia 7 жыл бұрын
Продолжаю смотреть Ваши уроки. Рассказал всем кому мог !!! По ходу, возник вопрос. Получается, что под каждую проблему надо строить свою нейронную сеть?! Например, продаем обувь - кому и что показывать, поисковый запрос, самоуправляемый автомобиль, возможные недомогания по ДНК. Т.е. верно ли высказывание, что в основе нейронных сетей лежат стандартные алгоритмы, но 'сетки', которые необходимо считать абсолютно разные и искусство заключается в том, чтобы создать нейронную сеть максимально близко описывающую проблему и подобрать( рассчитать ) веса. Спасибо.
@alexanderten9540
@alexanderten9540 Жыл бұрын
Трайт состоит из двух элементов по три проверочные линии каждый. То есть не перебор единиц и нулей, а проверочная линия, т.е. только одно значение равно единице, остальные две линии соответственно обнуляютя.
@alexandr7426
@alexandr7426 3 жыл бұрын
Спасибо! Всё понятно!
@sezual
@sezual 3 жыл бұрын
Чуть чуть добавлю. 1. Почему нельзя 1 или 0 в коэффициентах (или массе). Дело в том, что тогда не будет развития сети. Например, в жизни вы уверены например, что Ваш сосед по ночам ворует у Вас яблоки через забор. Вы уверены в этом железно, потому что логично, что некому. Но вы с ним ссоритесь и подаете в полицию... но случай позволил Вам увидеть, что это "воруют" по ночам Ваши дети, чтобы угостить семью инвалидов. Если Ваша нейронная сеть могла иметь значение 1, то данное открытие не изменит Вашего отношения к соседу. А если не может быть 1, то изменит, что логично и дает Вам развитие.
@SKYDELSTV
@SKYDELSTV 5 жыл бұрын
Nice, с удовольствием смотрю!!!)
@darkfrei2
@darkfrei2 4 жыл бұрын
17:00 - а если у четвёртого нейрона было бы несколько синапсов, например к двум выходным нейронам, ошибка бы этого нейрона была бы просто суммой ошибок?
@МаркНоркин-г9т
@МаркНоркин-г9т 4 жыл бұрын
добрый день, вы нашли ответ на этот вопрос?
@darkfrei2
@darkfrei2 4 жыл бұрын
@@МаркНоркин-г9т вроде бы да E_total= E_o1 + Eo2 - суммарная ошибка E_o1 = (1/n)(value - taкget_value)² - ошибка первого выходного нода n=2, так как два выхода сети
@АртурИдрисов-р8л
@АртурИдрисов-р8л 2 жыл бұрын
Если мы знаем все возможные комбинации и исходы для каждой комбинации (массив train) мы можем создать булеву функцию, которая будет точно выдавать нужный нам результат при всех возможных входных параметров. Соответственно спрашивается для чего нужна нейронка в данном случае?
@valf44
@valf44 7 жыл бұрын
Фух пол дня ушло, чтоб на C# такое написать. с Питоном мало знаком, поэтому легче было чисто на теорию опираться, но за-то теперь четко понял принцип
@KovalevskyiAcademy
@KovalevskyiAcademy 7 жыл бұрын
+Sendman Ghost не хотите поделится кодом;)?
@valf44
@valf44 7 жыл бұрын
Могу)
@valf44
@valf44 7 жыл бұрын
Только куда скинуть?
@Группа4170
@Группа4170 5 жыл бұрын
@@valf44 не хотите поделится кодом?)
@ehrlich6795
@ehrlich6795 4 жыл бұрын
Угукание того другого за кадром значительно облегчает усваивание материала.
@РостиславКолосс
@РостиславКолосс 7 жыл бұрын
Спасибо большое. Очень подробно обьяснили... лайк+подписка
@РостиславКолосс
@РостиславКолосс 7 жыл бұрын
Если еще не трудно, можете запилить видео с предсказаниями в нейронных сетях?
@irinaira7127
@irinaira7127 7 жыл бұрын
Добрый день. У меня вопрос по поводу формулы, по которой Вы рассчитываете дельту весов. Не могли бы Вы дать ссылку на источник, из которого была взята данная формула? Хотелось бы подробнее о ней почитать и узнать почему она имеет именно такой вид. Спасибо.
@IgorAherne
@IgorAherne 7 жыл бұрын
поищите мой комментарий под этим видео(по-поводу того "как распространять ошибку на болеее глубокие уровни"), он поможет разобраться.
@АрсенийКривецкий
@АрсенийКривецкий 5 жыл бұрын
Вопрос: когда мы распространяем ошибку, в вашем примере, когда мы переходим на скрытый слой, надо заново дельту считать?
@ЮрийЛогунов-ь8б
@ЮрийЛогунов-ь8б 5 жыл бұрын
да, дельта1 = err1*sigmoid(x1)*(1-sigmoid(x1)) = 0.07*0.77*(1-0.77)=0.01 дельта 2 = err2*sigmoid(x2)*(1-sigmoid(x2)) = 0.07*0.78(1-0.78)=0.01
@Guljaca
@Guljaca 5 жыл бұрын
Шикарная тема!
@arsenthompson
@arsenthompson 4 жыл бұрын
а у вас когда ошибку вычисляете надо наоборот error = expected-actual , во многих ресурсах видел именно обратное вычисление вашему ошибки. Или я ошибаюсь?
@RovshanMusayev
@RovshanMusayev 7 жыл бұрын
А нельзя ли написат алгоритм чтобы подобрать самого "epochs" и "learning_rate" для того чтобы добится "training_loss" ближе к "0" чтобы программа сама решала какое "epochs" и "learning_rate" лучше подходит к етому задацу и при етом исклюцат ручного работу полностю?
@IgorAherne
@IgorAherne 6 жыл бұрын
Можно, например алгоритм iRprop+ хранит отдельно learning_rate для каждого веса. Сходится за 50 итераций, в то время как обычная сетка (с моментумом) сходилась бы за 10 000. Но увы, iRporp+ нельзя использовать для Стохастического Градиентного спуска, т.е разрешается корректировать только когда все примеры были прогнанны через forward_pass
@amalyshok
@amalyshok 6 жыл бұрын
Igor Aherne а что, если постепенно уменьшать learning_rate, тем самым экспоненциально настраивать нашу сеть? к примеру "грубо" настроить за небольшое количество итераций для начала, а уже после этого сохраненную сеть настраивать более "тонко" ?
@clanwarexperiment2397
@clanwarexperiment2397 5 жыл бұрын
А так спасибо тебе большое. Классное видео. Глеб умница тоже)
@СерыйКот-л2ж3х
@СерыйКот-л2ж3х 5 жыл бұрын
С точки зрения математики все очень просто, но с кодом... Я в питоне новичок, да и с английским не очень :))), так что пытаясь разобраться приходится переводить с одного неизвестного, на другой неизвестный, а потом на русский. Жесть :))). Но вообще спасибо, очень доступно и по шагам объясняете.
@Эндоскоп
@Эндоскоп 7 жыл бұрын
А при инициализации сети с равными весами пробовали? вроде бы логично дать каждому нейрону равный вес = 1/ЧислоНейроновСлоя, чтоб обучение меньше тужилось и быстрой веса встали на места
@pie4928
@pie4928 Жыл бұрын
А это идея ! А то у меня какой-то абсурд с весами.
[DeepLearning | видео 1] Что же такое нейронная сеть?
19:00
3Blue1Brown translated by Sciberia
Рет қаралды 805 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 56 МЛН
The IMPOSSIBLE Puzzle..
00:55
Stokes Twins
Рет қаралды 159 МЛН
Players vs Pitch 🤯
00:26
LE FOOT EN VIDÉO
Рет қаралды 131 МЛН
Нейронная сеть. Пытаюсь познакомиться. Часть 1.
20:05
foo52ru ТехноШаман
Рет қаралды 250 М.
Включення змін (merge) у гілку проекту в Git | ІТ довідник
13:33
Нейросеть. Самый детальный гайд.
32:23
Уже Наступило
Рет қаралды 246 М.
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 129 М.
Нейронная сеть на Python с нуля
14:40
Дмитрий Коробченко
Рет қаралды 159 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 56 МЛН