Нейронные сети стали проще

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

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

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

Слои

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

Первый уровень принимает входные данные. Выходной слой дает определенный результат. Средние слои, также известные как скрытые, представляют собой слои, которые выполняют работу по созданию выходных данных.

Каждый слой имеет нейроны или «узлы», каждый из которых имеет значения. Каждый узел связан с каждым узлом следующего слоя. Каждая из линий на схеме, соединяющих узлы вместе, оказывает определенное влияние на значения. Это называется весом. У каждого узла есть значение, которое влияет на вывод этого конкретного узла, называемое смещением. Теперь запутались? Приведем аналогию.

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

Обучение и стоимость

Как тренировать нейронные сети. Мы даем им образцы данных и даем правильный ответ. Затем они сравнивают результат с тем, что мы ожидаем от них. Это число называется стоимостью. Это просто цель, вычитаемая из результата. Затем рассчитывается ошибка, а затем мы корректируем значения. Как? Так называемое обратное распространение.

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

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

Большое слово. Не бойся. Обратное распространение - это метод обучения, который нейронные сети используют для корректировки значений весов и смещений, пытаясь минимизировать затраты. Сеть начинается с выходного слоя и движется в обратном направлении, пропорционально изменяя значения весов. Это обучение продолжается до тех пор, пока стоимость не будет максимально снижена. Что, если бы мы каждый раз снижали стоимость на 2? Скорее всего, мы превысим правильное значение. Как он изменяет значения по скорости, чтобы мы не превышали затраты? Мы используем причудливую математику (которую я не буду объяснять в этой статье), чтобы скорректировать скорость весов, чтобы минимизировать затраты.

Ключевые моменты:

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

Да, сначала может быть сложно

Если вы зашли так далеко, то знаете основную теорию нейронных сетей. Возможно, вам понадобится изучить такие темы, как исчисление, умножение матриц, градиентный спуск, чтобы понять математику, лежащую в основе нейронных сетей, и для их реализации вам нужно будет знать, как кодировать. Если вы моего возраста, это может показаться немного пугающим, но в Интернете есть тысячи ресурсов. Лично у меня есть книга на Amazon под названием «Создайте свою собственную нейронную сеть» Тарика Рашида, и я изучил все основы нейронных сетей. Он очень простыми способами обучает вас теории, математике и программированию. Он также настраивает вас на выполнение вашей первой задачи с использованием компьютера Raspberry Pi для создания собственной нейронной сети.

Ссылка на книгу: Создайте свою собственную нейронную сеть Тарика Рашида »

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