Press "Enter" to skip to content

Let’s code a neural network in plain JavaScript


хороший понедельник утром сегодня мы собираемся
кодировать нейронную сеть с нуля
JavaScript
нет библиотек, никаких предположений о
зная математику, потому что я не знаю
математика Я не знаю статистику Я не знаю
знаю AI у меня только смутное очень расплывчато
идея о том, что наша нейронная сеть
с некоторых видеороликов YouTube я смотрел, как я
откладывают на обучение
машинное обучение так долго, давайте просто
сделай это Я MC J, и ты смотришь удовольствие
функция удовольствия
[Музыка]
Сегодняшнее шоу спонсируется пушером, который
sha упрощает добавление в реальном времени
средства коммуникации и совместной работы
для вашего приложения чаты pub / sub mobile push
и Pheebs проверяют их при нажатии r точка
fun fun fuckin dot-com, эта ссылка также
в описании эпизода Швеция
очень теплый, поэтому мои энергетические уровни могут быть
неуклонно падая, пока я не умру в этом
эпизод в порядке, поэтому на прошлой неделе я смотрел
видео Даниэля Шиффмана по основам
внедрения нейронной сети мне нравится
Шиффман Я хотел начать работу с
с машинным обучением, и я просто понял
что эй нейронные сети, которые звучат
круто это началось с того, что я потоковал его
на Twitch
Я иногда перехожу на Twitch, поэтому, если вы
не следуй за мной на Твич, который ты должен
twitch.tv slash fun fun функция twitch
все еще немного хобби, но я
действительно нравится делать это было очень много
веселья не получилось слишком хорошо, хотя
это с точки зрения результатов, которые я действительно не делал
завершите нейронную сеть, но я не
спать с ним вокруг немного
больше, и я думаю, что у меня есть что-то
показать вам, что я узнал так в
эта серия обучения машины я иду
попытаться много контактировать с фактом
что я ничего не знаю, чего не знаю
много Python, я мало что знаю о
математика Я не знаю много о статистике
Я не знаю много о вероятности I
не знаю много о механизме обучения
и AI, поэтому я буду использовать это
новичка 7 и попытайтесь использовать
где я только когда узнал
что-то я постараюсь
помни, как это было до того, как я
узнал это, и я собираюсь использовать это для
сделать эти видео для вас, так что я добрый
сделать эти видео для себя
но как два дня назад
надеюсь , что получится в
интересный контент, или это может быть просто
очень очень грязно, это новый и
экспериментальный способ делать видео для меня
поэтому мы оставим ваши комментарии ниже
после того, как вы посмотрели, где вы
подумал об этом и как я могу
это лучше или если я просто брошу его
в любом случае, давайте пойдем посмотреть
в этот
Я использую наблюдаемые ноутбуки, потому что
они потрясающе не получают спонсоров
или что-то в этом роде
удобные интерактивные ноутбуки, это своего рода
как jsfiddle, но вы действительно можете хранить
данные, и они такие хорошие, что я не пойду
в высокоуровневое объяснение того, что
нейронная сеть честно, потому что
там уже в значительной степени
идеальное видео, которое уже существует
три синих один коричневый, но что такое
нейронная сеть Я связал это здесь просто
посмотрите на это прежде, чем просмотреть это
видео, если вы не знаете, что такое нейронное
сеть , это даст вам хорошую
вид высокоуровневого обзора того, что он
он также входит в пару Мэтью
детали, что они собираются быть
страшно, но не беспокойтесь об этом, мы не
пойду в это, просто попробуй знать
например, есть математика, поэтому наша цель —
выглядят как ультра ультра простые
нейронная сеть, как самая глупая маленькая
нейронной сети, как это даже не
сеть — это всего лишь одна ячейка мозга
нейронный персептрон, как бы слова
они используют, мы не будем использовать эти
слова , где мы пытаемся , чтобы мы собираемся
попытайтесь сосредоточиться здесь на получении
принцип, поэтому я не собираюсь тратить
много времени в словах я не собираюсь
тратить много времени в мозг
аналогии не будут происшествия в Нью-Йорке
как кровь, это не очень важно
не означает дерьмо на всех
интересное исследование , которое было сделано
на этом, но я считаю, что получение
запутались и вошли в математику и
наука мозга о вещах вроде
вид отвлекающих был отвлекающим
для меня, изучая эти вещи, я просто
хочу понять суть этого и
понять, как он решает проблемы после
что хорошо , то мы можем пойти нырнуть в
интересные аспекты того, что лежит за пределами
и как он соединяется в
все, но пока нас интересует
глядя на то , что нейронная сеть
и как это работает, поэтому мы собираемся построить
немного глупой нейронной сети и
цель этого маленького глупого нервного
сеть должна классифицировать
на какой стороне системы координат, которая
дело в том, что вы просто представляете себе
системы координат, и это похоже на линию
между ним, а затем это куча
точек, а затем нейронную сеть мы
научит нейронную сеть фигурировать
если точка находится по эту сторону от
системы координат или линии
проходя через систему координат или
на этой стороне это не очень умный ИИ
что мы строим, но вы знаете ребенка
шаги по созданию Skynet — это
часть в этой серии хорошо, давайте начнем с
мы собираемся создать кучу случайных
очки, которые вы знаете, как точки с XY
координаты в системе координат в
машинное обучение есть много
системы координат, которые немного
математики, и это немного
геометрия там, которая может дать вам
воспоминания из средней школы или
что бы вы ни пытались дышать
первое, что мы собираемся сделать, — это
вытащить это, это один из
Хорошие вещи о наблюдаемых — то, что вы
может просто втянуть в наши модули NPM, это
действительно приятно, давайте создадим случайные
точки случайных точек, которые я собираюсь использовать
функция диапазона и оранжевый
функция дает нам числа от 0 до
5 Z, как будто это дает нам знать, что
номера два двое, я действительно не
заинтересованы в действительных числах здесь I
просто нужен массив длиной 100
что я могу сделать математику на него , а затем я могу
действительно забочусь о том, что в массиве я просто
хочу, чтобы вы знали, что мне присвоено
случайное число там, и это было похоже
во время потока в одном из потоков
зрители действительно написали эту функцию для
меня так приятно и интерактивно, что
путь, и есть, и мы хотим, чтобы числа
варьироваться от минус 1 до 1, чтобы вы видели
здесь как
мы получаем, как вы видите, как траншеи из
минус один-два 180-го числа справа на
как вы можете обидеться на это
синтаксиса здесь это наблюдается
что это не
глобальная переменная, подобная игре
JavaScript интерпретировать это на самом деле
создавая наблюдаемый, поэтому, если я это сделаю
как случайный, я могу делать случайные точки точки
длину здесь и задавать случайные точки там
поэтому всякий раз, когда я перехожу сюда сюда
вы хотите посмотреть этот номер здесь, давайте
измените это на 200, что
автоматически обновлять, чтобы это было
это основной предмет или вещь в
наблюдаемые и как вы их объявляете так
это сначала то, что кажется
отвратительный синтаксис, но на самом деле
действительно очень приятно иметь дело в любом случае
это на самом деле не указывает на то, что это
как вы видите, это просто цифры
но мы наливаем в точку х-координату
и y-координаты, так что это то, что мы
не мы не будем и х и у-координаты так
приходите в пятницу X, и мы собираемся сбежать от меня
я пытаюсь быть действительно действительно счастливым даже
хотя так тепло, что у нас теперь есть
некоторые координаты X и Y хороши
я хочу сделать это как визуальный
и, насколько возможно, интерактивными ,
вам не нужно выполнять много
код в голове и сохранить абстракции
в твоей голове, чтобы мы собрались в
серии мы будем стараться, насколько
возможно постоянно визуализировать, что
ад идет, поэтому я собираюсь рисовать
система координат, и мы собираемся
нарисуйте его с SVG, что mpj несут со мной
это будет круто
Хорошо
он что-то нарисовал, но он рисует
все в верхнем левом углу и
это потому, что вы знаете случайную
что я просто держу его между
минус 1 и 1, и я не знаю, почему я сделал
что
это было просто глупо, давайте не будем этого делать
Вместо этого я хочу , чтобы держать их между как
насколько велика система координат
поэтому мне будет нравится делать эти
переменные, поэтому я собираюсь убить это x
max, и я собираюсь назвать это тем, что Y
max, и мы собираемся объяснить, почему Max 400
и я также сделаю x max 400 by
так это, когда я закончил это
эпизод Я собираюсь поставить это записная книжка
чтобы вы могли найти его в приложении, поэтому
описание этого не будет
Earl он собирается иметь еще один в начале
после того, как он польский, но ты собираешься
быть в порядке, и вы можете поиграть с
это сами, пока вы это делаете или
вы можете просто создать его с нуля и
какое- то время
посмотрим вверх X max здесь X Max здесь
и случайные точки должны быть
сгенерированный из этого, так что X будет
От 0 до X Макс, и это будет C 0 до Y
max и что там, а потом это не
работать вообще
это не то, что дерьмо, чтобы это выглядело
что это на самом деле выглядит
смотри в порядке, проверяй SVG SVG
только рисует один круг, а затем
круг внутри круга , а затем
круг внутри этого вы можете смотреть
момента создания я не хочу создания
о, потому что я не закрываю тег
там мы идем в порядке, радиус 5 слишком большой
радиус 3 кажется более разумным, это показывает вам
много власти с наблюдаемыми давайте
позвольте мне, когда я три создаю очки
здесь вы видите, что это обновление
все наблюдает mmm, чем
реактивный и приятный супер классный я люблю
наблюдаемый, помните, что я сказал, что мы
хотел начать классифицировать нас на
какая сторона системы координат
круги или L не являются кругами
указывает, что мы движемся кругами для нас
имеют данные, а затем мы имеем
визуализация данных в любом случае я
собирается нарисовать линию
нет да да хорошо давайте обратим внимание я хочу, чтобы это было
фиолетовый, поэтому мы собираемся назвать эту команду
команде, и нам не сказали эту команду
минус 1 так 1 минус 1 и я собираюсь
напишите небольшую функцию, которую мы называем
команда, и это будет точка
и если точка точка X выше точки
что это будет
команда team 1, иначе это будет t
минус y, а затем я на самом деле собираюсь
используйте эту функцию здесь, чтобы дать ей
разного цвета, чтобы мы убедились
что наша функция верна
все в порядке, так что оказывается, что эта команда
это команда -1 , и это команда 1 теперь
сложная вещь с обучающей машиной
обучение заключается в том, что примеры, которые вы
необходимо использовать, чтобы понять, что
черт возьми , так просто, что
вы могли бы также использовать код и
то есть , что, безусловно , имеет место в
в этом случае, если мы посмотрим на
это мы уже решили
проблема здесь , используя эту небольшую команду
функция, которая заключается в том, что с этой командой
функция принимает точку, а затем она
фактически действуют действительно правильно
классифицирует точку, поэтому в этой задаче
это очень очень простая проблема
так оно и есть, потому что у него есть только два
поэтому он имеет X и y-координату
что все это определяет, как
где в какой команде назначают и Suppan
и логика тоже очень проста.
просто если X больше, чем Y, тогда
он заканчивается в одной команде или где другой
и в реальной жизни у нас гораздо больше
сложные проблемы классификации для
пример , скажем , у вас есть куча
данные о ценах на жилье хосписа
классическая проблема для этого, поэтому каждая строка
может быть как продажа или дом, поэтому
вместо этих вещей эти случайные
координаты точек x и y, это может быть
просто дома в длинном списке, и они
они каждый каждый ряд строк этих домов
они похожи на квадрат, подобный
насколько большая квартира может иметь
квадратные метры или клятвы или что-то еще
вы используете в чужой земле mytab, где это
находится в какой области он находится ее
может показаться годом, когда
здания было построено количество
и, возможно, 20 из них
может служить в более сложных проблемах
могут быть сотни таких вещей
в этой проблеме, на которую мы смотрим
здесь это X & Y координаты, но в
другой — это еще одна проблема, которую он мог бы
быть аспектами дома, который воздействует на
цена, такая как размер и местоположение и местоположение
и в другой проблеме могут быть цветы
это могут быть размеры лепестков и лепестков
при классификации изображений животных
могут быть похожими на узкие уши, которые у них есть
например, если у них есть бакенбарды и что мы
хочу сделать то, что мы хотим взять все
этих данных или черт
хочу называть их, и мы хотим сожрать
их вместе как-то с некоторой логикой
и некоторые не очень юристы, как если бы мы
сделал это с помощью программирования, которое мы будем использовать
логики мы использовали множество утверждений if и
или, возможно, если цена дома
например, если это место, то тогда
это означало эффект и подобное, но это
работает в этом простом случае, но в
дом цена случае это будет собираюсь быть
чрезвычайно сложный, и это всего лишь код
не очень подходит, если мы создали
прогноза цен на жилье, который мы приняли бы
все эти цены на жилье и обманывают их
вместе и как-то производят выход
цена , основанная на всех своих входах так с
цены на жилье нам не удастся
визуализировать эту погоду с помощью 2d
системы координат, поскольку
путь к большему размеру проблемы, чем
есть координаты в реальной жизни , как
ему не хотелось бы, чтобы это не было
трехмерное это было бы как 13
размеры и люди могут визуализировать это
то есть, когда машинное обучение становится
очень абстрактны и очень полезны, но это
не то, что мы собираемся делать сегодня, или
Причина, по которой я объяснил, что это дать
вы понимаете, почему мы используем машину
обучения и у вас , как вы должны
используйте свое воображение немного
понять почему это, потому что
в этом случае, когда проблема очень
педагогически простые использовали эти два
Давайте создадим ИИ, который у нас есть
создать предположение о вызове функции, которое делает
точно так же , как команда, но
вместо использования логики для определения
где где точка вместо использования
математика, она будет использовать машинное обучение
так что давайте начнем, да, это просто медведь
со мной здесь да, это функция догадки
это функция, которая принимает Уэйтс и ее
принимает входные сигналы , и вы знаете , входы это
как о, это общий термин для вещей
о мой бог, он назовет это точкой
потому что суть наших вкладов в этом
случае помните, что входы в этом
случай — всего две точки на a на
системы координат и x и yy, но в
нейронная сетка может быть похожа на жилье
цены или как кошачьи уши или бакенбарды
может быть как список вещей, и это
называемый входом, но в этом случае
Точно, иначе мы могли бы
запутаться, если я слишком много думаю
о абстракции да да давайте
все в порядке, поэтому давайте начнем там, мы
будет нуждаться некоторые веса , потому что
иначе у нас есть компьютер, который я собираюсь
какие веса Веса
вид состояния мозга нашего ИИ
вес является то , что мы собираемся быть
умножив все все с и
веса, которые они собираются начать
случайный AIS должен просто
весов, и тогда мы собираемся
собираемся тренировать ИИ, мы собираемся
есть предположение AI, основанное на его случайном
Веса , что заданная координата что
какая команда задает координату, и это
будет неправильно, потому что
весы все случайны, это просто
умножьте его на свои веса, и это
собирается быть довольно, но мы тогда
собираюсь дать ему правильный
потому что мы знаем, что позиция
в этом случае мы имеем функцию, которая
дает правильный ответ, что
но в реальной жизни мы бы
как фактические отпускные цены для домов
что мы могли бы дать, и когда мы его дадим
что ты видишь, как я ошибаюсь
Я был этим не прав, тогда я настраиваю свой вес
немного по отношению к этой ошибке, если
в этом суть не волнуется, если
вы сбиты с толку, что это нормально
не интуитивно , но давайте просто
медведь со мной Я просто пытаюсь дать тебе
ощущение того, куда мы идем, прежде чем я
начать кодирование, поэтому просто попробуйте следовать
случайные биты
привет, да, у нас есть случайные
вес это X, и это нормально.
это веса, это начальное состояние
нашего маленького ИИ, и вот как его
мозг выглядит как внутри
бессмысленно, и будет продолжаться
быть бессмысленным, но это еще больше
теперь разумно, потому что это всего лишь два
случайные числа
поэтому, если веса — это мозг нашего ИИ
то тогда думаю , существует ли затопить , что
мы собираемся включить этот мозг в
поэтому он принимает весы как
аргумент, так как угадывание использует
вес, чтобы думать, что я собираюсь показать вам
что, но сначала я собираюсь переключить рубашку
и, вероятно, переключить освещение и волосы
и, возможно, цвет лица, потому что я
выходить и встречаться с друзьями и
продолжая это позже один два
привет я mpj из не слишком отдаленных
Будущее, я указываю это этой шляпой
Я сижу вокруг, было яркое редактирование
редактируя это видео, и я понимаю, что это
очень долго, поэтому я разделил его на несколько
части, так что cliffhanger, пожалуйста, помните
что этот эпизод был любезно спонсирован
по толкателю, пожалуйста, проверьте их на
толкатель верхней части столбца действия вы
можете подписаться здесь, чтобы вы не
пропустить следующий эпизод в понедельник или если
вы смотрите это из будущего
то вы можете посмотреть следующий эпизод
прямо здесь, и в противном случае это будет
просто рекомендуемое видео, которое я думаю
Please follow and like us:

Be First to Comment

Добавить комментарий