Read the book: «ИИ своими руками. Как за неделю сделать нейросеть, которая узнает твои вещи»
Введение. Почему этакнига написана для своих
Привет, это снова я. Тот самый инженер, который в первой книге обещал тебе, что ИИ — это не магия. Если ты читал её (а если нет — ничего страшного, кратко введу в курс дела), то уже знаешь: нейросеть — это не мыслящий монстр, а очень быстрый калькулятор вероятностей. Ты перестал бояться слов «искусственный интеллект» и, возможно, даже пару раз поболтал с Алисой или ChatGPT.
Но теперь настало время для следующего шага. Шага, который отделяет пользователя от создателя.
Эта книга — для своих. Для тех, кто не хочет оставаться на берегу и смотреть, как другие бороздят океан технологий. Для тех, кто готов засучить рукава и сделать что-то руками. Для тех, кто думает, что программирование — это что-то для избранных гениев с математическим складом ума, но в глубине души подозревает, что это не так.
И ты прав. Это не так.
Питон (Python) — это не страшная змея, а ручной зверёк, который любит, когда с ним разговаривают понятно. За семь вечеров мы приручим его. Мы не будем изучать весь язык — это как учить все слова иностранного языка, чтобы заказать чашечку кофе. Мы возьмём только то, что нужно для нашей конкретной цели.
А цель у нас — простая и интересная одновременно: создать нейросеть, которая будет различать твои личные вещи. Представь: ты кладёшь перед ноутбуком любимую кружку, наводишь камеру, а программа говорит: «Это твоя кружка! Уверена на 95%». А если пододвинуть наушники — скажет: «Это твои наушники!» И всё это в реальном времени, прямо в браузере. Никакой магии. Только твой код и несколько вечеров работы.
Это не магия. Это то, что ты сделаешь сам. Своими руками.
Я проведу тебя по самому короткому и безболезненному пути. Мы будем использовать Google Colab — бесплатный онлайн-инструмент, где всё уже настроено. Тебе не придётся ничего устанавливать на компьютер, мучиться с настройкой, ловить ошибки при установке библиотек. Всё будет работать прямо в браузере. Как Google Docs, только для кода.
Каждый вечер мы будем двигаться маленькими шагами. Ты будешь видеть результат сразу. Это не скучный учебник — это приключение. Мы будем писать код, который оживает. Мы будем кормить нейросеть фотографиями твоих вещей. Мы увидим, как она учится.
К концу недели ты не станешь профессиональным программистом. Но ты станешь человеком, который создал свой первый ИИ. А это чувство — бесценно. Оно меняет восприятие себя и технологий. Ты перестаёшь быть пассивным потребителем и становишься творцом.
Готов? Тогда открывай браузер, ищи в закладках Google Colab (или просто вбей в поиск), и поехали. Питон ждёт.
Как работать с этой книгой
Привет ещё раз! Рад, что ты решился на это приключение. Давай на секунду остановимся и договоримся о правилах игры — это сэкономит тебе кучу времени и нервов.
Структура книги
Книга разбита на семь вечеров. Каждый вечер — одна глава, один логический блок. Внутри главы ты найдёшь:
Объяснение «на пальцах»: что мы делаем и зачем.
Листинги кода, которые нужно скопировать и выполнить в Google Colab.
Мои комментарии и подсказки в духе «если что-то пошло не так».
В конце каждого вечера — краткие итоги: что ты узнал и чему научился. Если ты проходишь всё за неделю, то каждый день будешь видеть конкретный результат. Но если читаешь быстрее или медленнее — не страшно, книга подстроится под твой темп.
Что тебе понадобится
Компьютер или ноутбук с доступом в интернет. Планшет тоже подойдёт, но набирать код на клавиатуре удобнее.
Аккаунт Google (уверен, он у тебя есть). Мы будем работать в Google Colab — бесплатном облачном сервисе, где всё уже настроено.
Смартфон или веб-камера — пригодится, чтобы фотографировать предметы (начиная с пятого вечера). Много не нужно, хватит 10–15 минут на съёмку.
Желание пробовать и не бояться ошибок. Это, пожалуй, главное. Ошибки — часть обучения, я сам их обожаю (ну, почти).
Как пользоваться блокнотами
К книге прилагаются готовые файлы-блокноты с кодом для каждого вечера и pdf версия книги с хорошо читаемым кодом для копирования и вставки. Они лежат в папке book_notebooks и доступны для скачивания по ссылке в 7 главе в пункте 7.8.
Действуй так:
Открой colab.research.google.com.
Нажми Файл → Загрузить блокнот.
Выбери нужный файл (например, evening1_intro.ipynb).
Выполняй ячейки по порядку: нажимай кнопку Play (треугольник) или просто Shift+Enter.
Код можно вводить и вручную — так ты лучше запомнишь синтаксис. Хочешь — копируй из книги и вставляй в ячейки Colab. Оба варианта работают, выбирай тот, что по душе.
Если что-то пошло не так
Не переживай. В книге почти в каждой главе есть раздел «Если что-то пошло не так» с типичными проблемами и решениями. Вот самые частые советы заранее:
Ошибка при выполнении ячейки: прочитай сообщение красным шрифтом — Python часто сам говорит, что именно ему не понравилось.
Блокнот не видит файл: убедись, что ты загрузил нужный файл в среду Colab (через кнопку «Файлы» слева или ячейку files.upload()).
Модель выдаёт странные результаты: скорее всего, дело в малом количестве фотографий для обучения. Досними ещё, и всё станет лучше.
Виртуальная машина «заснула»: если долго не трогать Colab, окружение отключается. Просто перезапусти все ячейки по порядку (Runtime → Run all).
Важное о конфиденциальности и данных
Твои фотографии предметов (равно как и любые другие загруженные файлы) хранятся только в твоей учётной записи Google и не видны никому, кроме тебя. После завершения работы виртуальная машина удаляется вместе со всеми данными. Google не использует загруженные пользователями изображения для обучения своих моделей. Так что можешь смело снимать хоть зубную щётку — никто не узнает.
Что у нас за проект?
За семь вечеров ты создашь персональный определитель вещей — нейросеть, которая будет отличать твою любимую кружку от наушников, книгу от телефона и так далее. Почему не распознавание лиц? Потому что для старта это проще, быстрее и не вызывает вопросов по поводу приватности. А если после прочтения захочется переделать на лица — все инструкции в книге.
Поехали!
Теперь ты полностью готов. Открывай браузер, ищи в закладках Google Colab (или просто вбей в поиск), и давай знакомиться с Питоном. Он не кусается, обещаю.
Вечер 1. Знакомство с Питоном без укусов
1.1. Что такое Google Colab и почему это твой новый лучший друг
Когда я впервые решил попробовать программировать, я скачал какой-то Python с официального сайта, потом не мог понять, куда он установился, потом открыл чёрное окошко с мигающим курсором, написал print("Hello"), нажал Enter... и ничего не произошло. Оказалось, я был не в том окне. Я закрыл всё и месяц не притрагивался к теме.
Знакомо? Уверен, что да. Это как если бы ты захотел научиться готовить яичницу, а тебя отправили строить кухню с нуля: выравнивать стены, прокладывать газ, выбирать плиту. Оно, может, и полезно, но яичницу хочется сейчас.
Google Colab — это уже построенная кухня. Бесплатная, в облаке, с готовой плитой и набором продуктов. Это онлайн-блокнот, который живёт в твоём браузере. Всё, что тебе нужно — это аккаунт Google (а он у тебя наверняка есть).
Что такое этот блокнот? Представь документ в Google Docs. Ты можешь писать текст, вставлять картинки, форматировать. А ещё можешь вставлять ячейки с кодом и запускать их. Результат появляется тут же, под ячейкой. Удобно? Очень.
Как открыть Colab:
Зайди на сайт colab.research.google.com.
Войди в свой Google-аккаунт (если ещё не).
Нажми «Создать новый блокнот».
Всё. Ты на кухне. Плита включена, сковорода нагревается. Осталось только разбить яйца.
1.2. Твоя первая строчка кода (и она не кусается)
В центре экрана ты увидишь серую ячейку с надписью «Начните вводить код здесь...». Это и есть твоё рабочее место. Давай напишем самую простую команду, с которой начинают все программисты мира.
Введи в эту ячейку:
print("Привет, мир!")
Обрати внимание: кавычки должны быть прямыми, как ", а не ёлочками «». Регистр букв важен: print с маленькой буквы, Привет с большой. Точка в конце не ставится.
Теперь самое интересное. Слева от ячейки есть кнопка с треугольником (Play). Нажми её. Или просто нажми Shift + Enter на клавиатуре.
Под ячейкой должно появиться:
Привет, мир!
Поздравляю! Ты только что написал и запустил свою первую программу на Python. Ты — программист. Пусть начинающий, но уже программист. Чувствуешь эту магию? Ты сказал компьютеру: «Напечатай вот это», — и он послушался.
Что здесь произошло?
print — это команда, которая говорит Питону: «Выведи на экран то, что в скобках».
"Привет, мир!" — это текст, который мы хотим вывести. В программировании текст всегда берётся в кавычки.
Давай попробуем что-нибудь ещё. Напиши в новой ячейке (наведи мышь под результат, появится кнопка «+ Код»):
print("Меня зовут [Твоё Имя]")
print("Я только что запустил код на Python!")
Нажми Shift + Enter. Видишь? Ты управляешь Питоном, а он тебя слушается.
Важное правило вечера №1: Не бойся ошибаться. Если ты написал prin вместо print или забыл кавычку, Colab подсветит ошибку красным и попытается объяснить, что не так. Прочитай, исправь, запусти снова. Ошибки — это не провал, это часть обучения. Питон не кусается, он просто сообщает: «Я не понял, повтори».
1.3. Ячейки с текстом и ячейки с кодом
В Colab есть два типа ячеек:
Кодовые (Code) — для команд Python. Они серые.
Текстовые (Text) — для комментариев, пояснений, заметок. Они белые.
Ты можешь добавлять текстовые ячейки и писать в них что угодно: план на вечер, свои мысли, заметки «не забыть проверить». Это очень удобно. Я, например, всегда начинаю блокнот с текстовой ячейки, где пишу, что хочу сделать сегодня. Это как заметки на полях.
Чтобы добавить текстовую ячейку, нажми «+ Текст» на верхней панели. Чтобы превратить текстовую ячейку в кодовую (или наоборот), используй выпадающий список в правом верхнем углу ячейки.
Попробуй прямо сейчас: добавь текстовую ячейку и напиши в ней: «Мои заметки к Вечеру 1». А ниже добавь кодовую ячейку с командой print("Я учусь программировать!"). Запусти кодовую ячейку.
1.4. Комментарии в коде: как оставлять записки самому себе
Иногда в коде хочется оставить пояснение: что эта строчка делает, зачем она нужна. Чтобы Питон не пытался выполнить это пояснение как команду, используются комментарии.
В Python комментарий начинается с символа #. Всё, что после решётки на этой строке, Питон игнорирует.
Попробуй:
# Это комментарий, Питон его не читает
print("А это он читает и выполняет") # И это тоже комментарий, после решётки
Комментарии — твои друзья. Они помогают вспомнить, что ты делал вчера вечером. Я рекомендую комментировать всё, что кажется неочевидным. Через месяц ты скажешь себе спасибо.
1.5. Первый интерактив: калькулятор
Питон умеет не только печатать текст, но и считать. Давай попробуем использовать его как калькулятор. Введи в кодовой ячейке:
2 + 2
Нажми Shift + Enter. Результат: 4. Попробуй другие операции:
5 - 3
4 * 7 (умножение — звёздочка)
10 / 3 (деление — слеш)
2 ** 3 (возведение в степень: два в кубе)
Видишь? Питон считает быстрее тебя. И не устаёт.
1.6. Что мы узнали за первый вечер
- Google Colab — это твоя онлайн-кухня для программирования. Ничего устанавливать не нужно.
- print() — команда, которая выводит текст на экран.
- Кодовые ячейки — для команд Питону. Текстовые ячейки — для твоих заметок.
- Комментарии начинаются с # и помогают документировать код.
- Питон умеет считать и делать это мгновенно.
Ты сделал первый шаг. Не страшно, правда? Завтра мы познакомимся с переменными, списками и циклами. И всё это — на примере твоего холодильника. Спокойной ночи, Питон тебя уже ждёт.
Вечер 2. Переменные, списки и циклы — на примере холодильника
2.1. Где Питон хранит информацию? Знакомство с переменными
Вчера мы научились здороваться с миром и считать как калькулятор. Но есть одна проблема: Питон — парень с короткой памятью. Если ты написал 2 + 2, он показал 4 и тут же забыл и про двойки, и про результат. Это как если бы ты спросил у друга: «Сколько будет два плюс два?», он ответил «Четыре», а через секунду уже не помнил бы ни вопроса, ни ответа. Неудобно.
Чтобы Питон запоминал информацию, нам нужны переменные. Переменная — это такая коробочка с биркой, куда можно что-то положить и потом достать, когда понадобится.
Представь, что ты открываешь холодильник. В нём есть полки, а на полках — продукты. Ты можешь сказать: «На верхней полке лежит сыр». В программировании это выглядело бы так:
top_shelf = "сыр"
Что здесь произошло?
top_shelf — это имя переменной (бирка на коробке). По-английски top shelf означает «верхняя полка». Программисты почти всегда называют переменные на английском — так код легче читать во всём мире.
= — это знак присваивания. Не путай с математическим «равно»! Здесь это значит «положи в коробку с биркой top_shelf значение "сыр"».
"сыр" — это значение, которое мы кладём в коробку.
Теперь, когда мы напишем print(top_shelf), Питон заглянет в коробочку с биркой top_shelf и покажет, что там лежит.
Попробуй в Colab:
top_shelf = "сыр"
print(top_shelf)
Результат: сыр.
Мы можем создать сколько угодно таких коробочек. Например, опишем содержимое холодильника:
top_shelf = "сыр"
middle_shelf = "колбаса"
bottom_shelf = "овощи"
door = "молоко"
print("На верхней полке лежит", top_shelf)
print("На средней полке лежит", middle_shelf)
print("В дверце стоит", door)
Запусти. Видишь? Питон запомнил, что где лежит, и выдал тебе отчёт.
Важное правило вечера №2: Имена переменных должны быть понятными. a = "сыр" — плохо, потому что через неделю ты забудешь, что такое a. top_shelf = "сыр" — хорошо, сразу ясно. В Python принято писать имена переменных маленькими буквами, а слова разделять нижним подчёркиванием _ (это называется snake_case).
2.2. Что ещё можно положить в переменную?
В переменную можно положить не только текст, но и числа, и результаты вычислений.
egg_count = 6
sausage_count = 4
total_items = egg_count + sausage_count
print("Всего в холодильнике", total_items, "упаковок с едой")
Питон посчитает сумму и положит результат в переменную total_items. Удобно? Очень.
А ещё можно менять значение переменной. Представь, что ты съел одно яйцо. Как это отразить в коде?
egg_count = 6
print("Было яиц:", egg_count)
egg_count = egg_count - 1
print("Стало яиц:", egg_count)
Обрати внимание на строчку egg_count = egg_count - 1. В математике это бессмыслица (как может число равняться самому себе минус один?). Но в программировании это работает так: «Возьми текущее значение из коробки egg_count, вычти из него 1 и положи результат обратно в ту же коробку».
Запусти код и увидишь, как уменьшается число яиц. Это основа основ.
2.3. Списки: когда продуктов много и нужно разложить по порядку
Холодильник у нас большой. Допустим, мы хотим хранить не отдельные продукты, а список покупок на неделю. Для этого в Python есть списки (lists).
Список — это как полка с пронумерованными ячейками. Создаётся он с помощью квадратных скобок [], а элементы перечисляются через запятую.
shopping_list = ["хлеб", "молоко", "яйца", "сыр", "помидоры"]
print(shopping_list)
Чтобы достать конкретный элемент из списка, нужно указать его индекс — порядковый номер. Но есть нюанс: Питон считает с нуля. Первый элемент имеет индекс 0, второй — 1, третий — 2 и так далее.
shopping_list = ["хлеб", "молоко", "яйца", "сыр", "помидоры"]
first_item = shopping_list[0]
second_item = shopping_list[1]
print("Первый в списке:", first_item)
print("Второй в списке:", second_item)
Результат:
Первый в списке: хлеб
Второй в списке: молоко
Сначала это кажется странным: почему не с единицы? Просто так сложилось исторически. Привыкнешь.
Списки можно изменять: добавлять элементы, удалять, сортировать. Например, ты вспомнил, что нужно купить ещё масло:
shopping_list = ["хлеб", "молоко", "яйца"]
The free sample has ended.