
Детская футбольная команда, которую вы тренируете, только что выиграла большой матч, и вы спрашиваете детей, хотят они пойти за пиццей (в пиццерию) или за гамбургерами (в Макдональдс). Каждый ребенок начинает кричать о своих предпочтениях, и вы идете покупать то, о чем дети кричали громче всего.
Так работает нейронная сеть, но на нескольких уровнях. Узлы верхнего уровня получают данные на вход, каждый слой сети обнаруживает определенное свойство и кричит, когда видит это свойство — чем интенсивнее свойство, тем громче «узлы» кричат.
Теперь у вас есть куча узлов, кричащих «Ухо, я вижу ухо!», «Нос!», «Оно круглое!» с разным уровнем громкости. Следующий слой слушает и на основании того, что он слышит, узлы начинают кричать о более сложных функциях: «У него есть мордашка?!», «У него есть мех», пока, наконец, не дойдете до последнего уровня, где узел кричит «Это котенок!».
Волшебная часть машинного обучения заключается в том, что никто не говорит узлам, когда кричать, эта механика основана на «обратной связи». Ваша маленькая футбольная команда ходила за гамбургерами и некоторые из детей заболели. На следующей неделе они могут не кричать о гамбургерах или кричать о них не так громко из-за болящего живота. Дети все вместе узнали, что гамбургеры, возможно, не были хорошей идеей, и с большей вероятностью откажутся от них в будущем.
Нейронная сеть обучается почти таким же образом. Вы кормите ей кучу фотографий котенка и не котенка. Если сеть понимает все правильно, узлы усиливаются, поэтому узлы с большей вероятностью будут громко кричать так же в похожих ситуациях. Если этого не случается, то узлы, которые на «котят» кричат «собака», штрафуют. Первоначально результаты нейронной сети будут почти случайными, но если вы спроектировали сеть правильно, она будет становиться все лучше и лучше по мере адаптации узлов. Часто встречаются нейронные сети, которые работают без какого-либо понимания того, как именно это работает (если вы, конечно, не ученый).
Поздравляю, вы теперь ML-инженер 👨🎓