Найти в Дзене

Создаем свою нейросеть с перцептроном и синапсами: определился с назначением нейронной сети и накидал план по разработке

Последняя заметка, посвященная разработке собственной нейронной сети выходила почти три месяца назад, за это время старожилы канала уже и забыли про этот цикл статей, а вновь подписавшиеся про него даже и не знали. Напоминаю, что хочу создать собственную нейронную сеть и каждому важному этапу в разработке посвящать отдельный пост на канале. Ранее я рассказывал про то, как работают нейронные сети и каких видов они бывают. Чтобы быть в курсе происходящих дальше событий рекомендую прочитать (если не читали) или освежить в памяти (если читали) то, что выходило на канале. Сегодня расскажу про то, какую конкретно нейронную сеть планирую создать и покажу примерный план действий. Постараюсь не делать эту заметку объемной и сложной для чтения, как две предыдущие, чтобы как можно большему числу читателей и подписчиков все было понятно. Определился с назначением нейронной сети Из всего множества вариантов того, что можно разработать, решил создать такую нейронную сеть, которая будет полезна Linux
Оглавление

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

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

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

Определился с назначением нейронной сети

Из всего множества вариантов того, что можно разработать, решил создать такую нейронную сеть, которая будет полезна Linux-сообществу. Так как канал «Код на свободе» в первую очередь ориентирован на начинающих пользователей, то и нейронку захотелось сделать такой, чтобы она чем-то помогала новичкам. Какой же вопрос первым возникает в голове человека, желающего перейти на Linux? Естественно, какой дистрибутив из большого количества существующих выбрать и попробовать. В поисках ответа на этот вопрос новичок наталкивается на огромное количество информации от которой пухнет голова и мало чего понятно и которая, подчас, не представляет никакой пользы или конкретики. Потому, помогать с выбором как-раз таки и будет моя нейронная сеть. Говоря проще, будем писать рекомендательную систему для выбора Linux-дистрибутива.

Рекомендательная система будет выглядеть примерно так, только чуть сложнее
Рекомендательная система будет выглядеть примерно так, только чуть сложнее

Примерный план действий

Поскольку теоретического или практического опыта в написании нейронных сетей в общем и рекомендательных систем в частности у вашего покорного слуги нет, то он решил обратиться к тому, кто поможет саккумулировать уже накопленный кем-то опыт и представить его в простой и понятной форме. Как понимаете, этот «кто-то» - нейронная сеть ChatGPT. Я задал ему простой вопрос: «Как написать рекомендательную систему на Python для выбора Linux-дистрибутива?». Пошуршав чутка синапсами, ChatGPT представил следующий примерный план:

1️⃣ Собрать данные о различных дистрибутивах Linux, например, через парсинг сайтов о Linux или использовать уже собранные данные. Данные могут включать в себя такие параметры, как тип дистрибутива, поддержка аппаратного обеспечения, минимальные требования к железу, наличие графического интерфейса, размер файловой системы и т.д.

2️⃣ Определить целевую переменную, то есть параметр, который мы будем предсказывать. В данном случае, это может быть рекомендуемый дистрибутив Linux, основанный на ответах пользователя на вопросы.

3️⃣ Создать набор данных, состоящий из характеристик дистрибутивов и ответов пользователей на вопросы. Например, можно попросить пользователя ответить на такие вопросы, как «Какая цель использования дистрибутива?», «Какой у вас процессор?» , «Сколько оперативной памяти у вас имеется?» и т.д.

4️⃣ Преобразовать данные для использования в алгоритмах машинного обучения. Например, преобразовать категориальные данные в числовые, заполнить пропущенные значения и т.д.

5️⃣ Разделить данные на тренировочный и тестовый наборы. Обучить модель машинного обучения на тренировочном наборе данных, используя различные алгоритмы, такие как решающие деревья, случайные леса, градиентный бустинг и т.д.

6️⃣ Оценить качество модели на тестовом наборе данных и настроить параметры модели для улучшения ее качества.

7️⃣ Использовать обученную модель для предсказания рекомендуемого дистрибутива Linux на основе ответов пользователя на вопросы.

8️⃣ Оптимизировать модель и дополнять данные, чтобы повысить точность рекомендаций и обеспечить лучший опыт пользователей.

В общем-то выглядит план как что-то реально серьезное и стоящее, а значит нейронка меня не обманула и не подсунула какую-то дичь. Также ChatGPT порекомендовал конкретные библиотеки машинного обучения, которые можно использовать для написания такой рекомендательной системы: Scikit-learn, TensorFlow и Keras.

Использовать инструменты навроде ChatGPT для разработки плана чего бы то ни было очень удобно: в результате получаешь примерный маршрут, по которому стоит идти для достижения поставленной цели.

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

Подведем итог

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

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