Нейросети
Нейросеть, если говорить совсем простыми словами, – это компьютерная имитация принципов работы человеческого мозга. Главное отличие мозга от компьютера с точки зрения нейросетей в том, что человеческий мозг – это целая сеть нейросетей, ведь каждый из наших нейронов подобен отдельному компьютеру.
В искусственной нейросети, как и в мозгу, входящая информация представляет собой сигнал, который элементы сети – нейроны (небольшие простые процессоры) – обрабатывают, анализируют и переводят в новый сигнал, появляющийся на выходе.
В том, как именно происходит передача сигнала от одного элемента сети к другому, заключается ещё одно отличие искусственной нейросети от биологической. Компьютеру для выполнения любой задачи необходимо разбить её на множество подзадач, которые выполняются последовательно. Скорость передачи сигнала при этом выше, чем в человеческом мозгу, за счёт чего компьютеры могут быстрее, чем человек, решать конкретно поставленные задачи.
Однако в мозгу миллиарды нейронов могут работать параллельно, позволяя нам выполнять одновременно множество задач, в том числе неосознаваемых (например, сейчас вы читаете текст, а ваше тело производит все необходимые ресурсы для того, чтобы вы могли продолжать это делать: вы дышите, ваше сердце бьётся, мозг насыщается кислородом и т.д.).
Чтобы современные нам компьютеры могли сравниться с человеческим мозгом, им необходимы невероятные энергетические ресурсы. Сейчас для экономии ресурсов искусственные нейросети ограничиваются последовательной, но очень быстрой передачей сигнала.
Допустим, мы хотим, чтобы компьютер автоматически рисовал элементарное изображение человека по принципу «палка-палка-огуречик». Если бы мы самостоятельно создавали для этого алгоритм, нам пришлось бы описывать каждый элемент рисунка отдельно: вверху кружок, под ним эллипс, в верхней части эллипса и под ним – по одной палочке справа и слева. Для простого изображения описание лёгкое, но если нам потребуется что-то посложнее, описание будет гигантским, особенно учитывая, что каждый элемент и его местоположение нужно описать в виде кода на языке программирования. Нейросети сами создают код для описания элементов, однако для этого им требуется обучение.
Представим себе молодую неопытную нейросеть, которой дают такой же запрос. Поначалу на выходе она покажет множество рисунков с разными геометрическими фигурами – мечту кубиста. Но на каких-то из этих фигур вверху появится кружочек, на других – эллипс в середине, на третьих – палочки в приблизительно нужных местах. Затем создатель нейросети подсказывает ей правильный ответ – даёт нужную картинку.
Далее создатели могут предложить нейросети другие варианты рисунков, показывающих правильный ответ, а нейросеть скорректирует свои настройки и запомнит, какими бывают варианты правильного ответа, а также то, какие ответы точно правильными не считаются.
Нейросети активно используют в приложениях для редактирования и улучшения фото. Забросили в приложение старую нерезкую фотографию и через несколько секунд получаете очищенные от царапин и более резкие, чем до обработки, а иногда и колоризованные снимки – это постаралась нейросеть. Обрезали фон и подставили свой портрет на новый – тоже она.
Считается, что в будущем нейросети смогут приблизиться к уровню сложности человеческого мозга, однако для этого потребуются компьютеры, требующие меньших энергозатрат, или более мощные источники энергии.