«Я здесь, чтобы поделиться алгоритмом, который я разработал на Python, чтобы попытаться предсказать результат учащегося в ENEM с помощью модели линейной регрессии, но перед этим я должен рассказать вам историю, которая имеет большой смысл с этим результатом, хорошо ? Что ж, поехали». Фабио Мори, автор статьи.

Я сделал свои робкие шаги в программировании более 12 лет назад. Моя «нейронная сеть» в то время представляла собой телеметрическую систему с XBee, которая передавала данные в режиме реального времени, полученные и переданные через CAN из прототипа Formula SAE, проект, в котором я (активно) участвовал во время учебы в колледже. У меня также была возможность запрограммировать дисплей на рулевом колесе, который также показывал ту же информацию, но мне очень понравилось (пытаясь) изучить «сложную часть».

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

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

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

Тем не менее, в настоящее время мне очень трудно избежать программирования для разработки решения, и чтобы решить проблему моего мастера, мне пришлось снова программировать. Проблема заключалась в том, чтобы предсказать состояние заряда литиевой батареи во время ее использования, с упором на автомобильные соревнования, такие как, например, Формула E.

И угадайте, какую технологию я решил применить для предсказания?

Да, НЕЙРОННЫЕ СЕТИ. И дело было не только в этом; началось с фильтра Калмана, но в другой раз я напишу об этом статью. Сегодняшняя статья посвящена этим «нейронным сетям».

Я прошел курс Глубокое обучение с TensorFlow от IBM и еще один курс Машинное обучение с Python от линейных моделей к глубокому обучению от MIT на платформе edX. После их завершения я почувствовал что-то очень похожее на то, что я чувствовал, когда пытался запрограммировать XBee: Кажется, это не для меня.

Но не жалей меня; в жизни, если не можешь победить талантом, побеждай усилием. Это было (очень) сложно, но мне удалось запрограммировать нейронную сеть, которая оценивала состояние заряда литиевой батареи для использования в автоспорте (вы можете проверить полную работу по этой ссылке на GitHub).

«Отлично, я рад за вас, но если вы только что дали этот урок мотивации, почему тема «НЕ УЧИТЕ НЕЙРОННЫЕ СЕТИ». Я пока не понял связи!» Читатель статьи (вы).

Подожди, сейчас я тебе объясню. Но обратите внимание на слово «держись», использованное в начале этого абзаца. У меня его не было с собой, и, наверное, поэтому я пишу об этом сегодня.

В конце этой статьи, как я упоминал в начале, я поделюсь моделью линейной регрессии, разработанной на Python, которая предсказывает баллы учащегося в ENEM. Этот проект является частью аспирантуры, которую я прохожу в ТЕРА. С тех пор, как я начал там учиться в конце 2022 года, я чувствую, что мои навыки программирования растут с каждым днем ​​(я учусь каждый день, что тоже должно помогать), и я чувствую себя все более способным создавать алгоритмы и решения для разных типов задач, в том числе с использованием Нейронные сети (мы скоро узнаем об этом в ходе курса, и я очень взволнован этим).

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

  • Часто нам стыдно начинать с самого начала (фраза очевидна, но практика проблематична), ведь у нас почти всегда есть эго, говорящее нам, что эта часть «слишком проста» и что мы можем перейти к тому, что нужно. имеет значение и действительно является сложной задачей. Но время показало мне, что на самом деле настоящая проблема заключается в том, чтобы смиренно учиться, быть дисциплинированным, чтобы продолжать, и быть чутким, чтобы учить, когда это необходимо. Не игнорируйте процесс полностью; только тогда вы создадите прочный фундамент для дальнейшего развития предмета (каким бы он ни был).
  • «Никогда не стреляйте из пушки, чтобы убить муху». Удивительны ли нейронные сети? Да, на мой взгляд, но не всегда необходимо. В проекте необходимо учитывать множество факторов, и один из них (очень важный) называется вычислительной стоимостью, но мы можем пойти дальше и рассмотреть также реальную стоимость проекта. Вопрос в том, всегда ли нам нужна самая сложная модель? Самое точное решение? Ценой чего-либо? Что ж, это может звучать красиво, но на практике это не совсем так. Я мог бы использовать нейронную сеть для прогнозирования результатов? Да, но я также познал красоту линейной регрессии, какой бы «простой» она ни казалась. Думаю об этом.

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

Подключим образование. ♾️🤓📚