Цель. Эта статья предназначена для того, чтобы научить новичков нейронным сетям и их функциям. Если у вас уже есть какие-то знания, некоторые из них следует просмотреть, но, надеюсь, вы все же что-то из этого вынесете.

В этой статье мы узнаем, что такое нейронные сети, для чего они используются и чего вы все ждали: как они работают!

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

Что такое нейронные сети?

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

Нейронные сети уже стали огромной частью нашей повседневной жизни, осознаем мы это или нет. Каждый раз, когда вы разговариваете с Siri, это машинное обучение. Поиск фильма на Netflix — это машинное обучение. О, а рекламу, которую вы всегда видите в Instagram? Это машинное обучение!

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

Краткая история нейронных сетей:

Самые ранние формы нейронных сетей, называемые персептронами, были разработаны Фрэнком Розенблаттом в 1950-х годах. Они были намного проще и менее мощными, чем те, которые используются современными технологическими компаниями, но это была одна из первых разработок в области ИИ.

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

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

Достаточно о предыстории, давайте узнаем, как они работают!

Как работают нейронные сети?

Это объяснение будет разделено на 3 части; персептрон, алгоритм обратного распространения, а потом мы свяжем все это вместе.

Персептрон:

Персептрон — это самый простой тип нейронной сети. Первоначально он был создан для лучшего понимания мозга и смоделирован на основе нейрона. Разработанная Розенблаттом, сегодня она является основой почти всех нейронных сетей.

Персептрон принимает входные данные и выдает вам результат. Он принимает входные данные, умножает их на значение, называемое весом, а затем добавляет число, называемое смещением. Это представляет каждую математическую операцию ( *, /, +, -), и идея этого заключается в том, что вы изменяете веса и смещения, чтобы результат был таким, как вы хотите. каждый раз.

Примером этого является то, что вы берете некоторые данные из изображения (например, значения пикселей), а затем выполняете над ними операции, чтобы они давали вам 0 или 1 (например, есть корова или нет). корова).

Обратное распространение:

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

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

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

Выяснение того, насколько точна нейронная сеть, означает, что алгоритм может решить, насколько изменить веса и смещения (например, сильно изменить их, если они неточны, небольшие корректировки, если они очень точный).

Нейронные сети:

Нейронные сети используют как перцептроны, так и обратное распространение в своем подходе к машинному обучению.

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

Когда данные (входные данные) проходят через нейронную сеть, с ними выполняются операции (с помощью весов и смещений), а затем они выдают вам результат.

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

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

Когда это будет сделано достаточное количество раз (обучено на достаточном количестве данных), веса и смещения будут установлены так, чтобы они были как можно более общими и давали правильное значение для большинства фрагментов данных.

Что делать дальше:

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

Кроме того, для машинного обучения необходима хорошая основа Python, и я рекомендую курс «Python для науки о данных» от Dataquest.

Канал Siraj Raval на YouTube всегда является хорошим ресурсом, как и 3Blue1Brown для математики.

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

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

Я хотел бы услышать, что вы думаете об этой статье, так что дайте мне знать!