Самоучитель - Постолит А. В. - Основы искусственного интеллекта в примерах на Python, 2-е издание [2024, PDF, RUS]

Страницы:  1
Ответить
 

tsurijin

Стаж: 4 года 10 месяцев

Сообщений: 2900


tsurijin · 28-Сен-23 14:52 (1 год 11 месяцев назад, ред. 14-Окт-23 00:12)

Основы искусственного интеллекта в примерах на Python, 2-е издание
Год издания: 2024
Автор: Постолит А. В.
Издательство: БХВ-Петербург
ISBN: 978-5-9775-1818-5
Серия: Самоучитель
Язык: Русский
Формат: PDF
Качество: Отсканированные страницы + слой распознанного текста
Интерактивное оглавление: Да
Количество страниц: 450
Описание: Описаны инструментальные средства для разработки приложений искусственного интеллекта. Даны основы языка программирования Python. Раскрыты основные понятия и определения искусственного интеллекта. Рассмотрены вопросы программной реализации элементов нейронной сети и построения многослойных нейронных сетей. Большое внимание уделено применению специализированных библиотек PyBrain, Scikit-leam, Keras, TensorFlow для формирования структуры нейронных сетей и их обучения, и библиотек ImageAI и OpenCV для обработки изображений. Материал иллюстрирован простыми и понятными примерами, .демонстрирующими использование предварительно обученных нейронных сетей для распознавания объектов на изображениях, создания собственных наборов данных, формирования структуры сети, ее обучения и практического применения. Во 2-м издании обновлены программные коды и версии библиотек, улучшены рисунки, учтены пожелания читателей и исправлены ошибки.
Электронное приложение-архив, доступное на сайте издательства, содержит листинги описанных в книге примеров.
Для программистов
Примеры страниц
Оглавление
Предисловие............................................................................................................... 9
Глава 1. Инструментальные средства для разработки приложений
искусственного интеллекта...........................................................................................15
1.1. Интерпретатор Python........................................................................................... 16
1.1.1. Установка Python в Windows................................................................................17
1.1.2. Установка Python в Linux.................................................................................... 19
1.1.3. Проверка интерпретатора Python........................................................................ 20
1.2. Интерактивная среда разработки программного кода PyCharm................................. 20
1.2.1. Установка PyCharm в Windows............................................................................. 21
1.2.2. Установка PyCharm в Linux.................................................................................. 23
1.2.3. Проверка PyCharm.............................................................................................. 24
1.3. Установка пакетов в Python с использованием менеджера пакетов pip........................26
1.3.1. Где взять отсутствующий пакет?........................................................................... 27
1.3.2. Менеджер пакетов pip в Python............................................................................. 27
1.3.3. Использование pip............................................................................................... 28
Установка пакета...........................................................................................................28
Удаление пакета............................................................................................................29
Обновление пакетов......................................................................................................29
Просмотр установленных пакетов.................................................................................. 29
Поиск пакета в репозитории.......................................................................................... 29
1.4. Интерактивная среда разработки интерфейса PyQt................................................... 30
1.5. Краткие итоги главы................................................................................................33
Глава 2. Основы языка программирования Python.............................................................34
2.1. Первая программа в среде интерпретатора Python..................................................... 35
2.2. Оконная форма как основа интерфейса.................................................................... 39
2.3. Подключение Windows-формы к программе на Python................................................ 43
2.4. Сборка исполняемого файла на Python под Windows.................................................. 47
2.5. Базовые конструкции языка Python.......................................................................... 51
2.5.1. Переменные..........................................................................................................51
2.5.2. Функции................................................................................................................53
2.5.3. Массивы (списки)...... ,.......................................................................................... 58
2.5.4. Условия и циклы................................................................................................... 60
Условия......................................................................................................................... 60
Циклы............................................................................................................................ 61
2.5.5. Классы и объекты.................................................................................................. 64
Классы........................................................................................................................... 65
Объекты......................................................................................................................... 67
2.5.6. Создание классов и объектов на примере автомобиля................................................69
2.5.7. Программные модули.............................................................................................. 72
Установка модуля.............................................................................................................. 72
Подключение и использование модуля................................................................................73
2.6. Краткие итоги главы................................................................................................... 74
Глава 3. Элементы искусственного интеллекта.....................................................................75
3.1. Основные понятия и определения искусственного интеллекта.........................................76
3.2. Искусственный нейрон как основа нейронных сетей.......................................................77
3.2.1. Функция единичного скачка....................................................................................... 83
3.2.2. Сигмоидальная функция активации........................................................................... 85
3.2.3. Гиперболический тангенс..........................................................................................87
3.3. Нейронные сети...........................................................................................................88
3.3.1. Однослойные нейронные сети.................................................................................... 90
3.3.2. Многослойные нейронные сети.................................................................................. 90
3.4. Обучение нейронных сетей........................................................................................... 92
3.4.1. Что такое обучение сети?............................................................................................ 92
3.4.2. Обучающая выборка.................................................................................................... 93
3.4.3. Тестовая выборка......................................................................................................... 94
3.4.4. Обучение с учителем................................................................................................... 94
3.4.5. Обучение без учителя.................................................................................................. 95
3.5. Краткие итоги главы...................................................................................................... 95
Глава 4. Программная реализация элементов нейронной сети..................................................96
4.1. Персептроны............................................................................................................... 96
4.2. Классификация персептронов......................................................................................100
4.2.1. Персептрон с одним скрытым слоем........................................................................ 100
4.2.2. Однослойный персептрон..........................................................................................100
4.2.3. Виды персептронов.....................................................................................................105
4.3. Роль персептронов в нейронных сетях............................................................................... 106
4.4. Линейная разделимость объектов........................................................................................109
4.5. Решение задач классификации объектов на основе логических функций.......................112
4.6. Урок 1. Учим персептрон понимать изображения............................................................ 117
4.6.1. Распознавание цифр....................................................................................................119
4.7. Урок 2. Учим персептрон подбирать веса связей.............................................................. 123
4.8. Дельта-правило......................................................................................................................139
4.9. Линейная аппроксимация......................................................................................................142
4.10. Учим персептрон классифицировать объекты. Обучение без учителя.....................................148
4.11. Адаптивные линейные нейроны.........................................................................................157
4.12. Краткие итоги главы............................................................................................................171
Глава 5. Построение многослойных нейронных сетей................................................................... 172
5.1. Исследуем простейший искусственный нейрон........................................................................ 172
5.2. Программируем простейший искусственный нейрон................................................................ 177
5.3. Строим сеть из нейронов...................................................................................................... 179
5.4. Обучаем нейронную сеть...................................................................................................... 182
5.5. Последовательность шагов проектирования нейронных сетей.................................................. 193
5.6. Краткие итоги главы.............................................................................................................. 196
Глава 6. Полезные библиотеки для создания нейронных сетей на Python.......................................197
6.1. Виды специализированных библиотек................................................................................198
6.1.1. NumPy.......................................................................................................................... 198
6.1.2. Pandas........................................................................................................................... 198
6.1.3. matplotlib...................................................................................................................... 198
6.1.4. Theano.......................................................................................................................... 199
6.1.5. TensorFlow................................................................................................................... 199
6.1.6. Keras..................................................................;.......................................................... 199
6.1.7. PyBrian.........................................................................................................................200
6.2. Библиотека для построения нейронных сетей PyBrain..................................................... 200
6.2.1. Общие сведения о библиотеке PyBrain.................................................................... 200
6.2.2. Термины и определения в библиотеке PyBrain....................................................... 203
6.2.3. Установка (подключение) библиотеки PyBrain....................................................... 205
6.2.4. Основы работы с библиотекой PyBrain.................................................................... 207
6.2.5. Работа с наборами данных в библиотеке PyBrain................................................ ...209
6.2.6. Пример создания нейронной сети с библиотекой PyBrain.....................................219
6.3. Библиотека scikit-leam для создания и обучения нейронных сетей......................... 223
6.3.1. Наборы данных в библиотеке scikit-leam........................................................... 227
6.3.2. Обучающие и тестовые наборы данных в библиотеке scikit-leam.........................230
6.3.3. Предварительный анализ наборов данных.......................................................... 231
6.3.4. Обучение нейронной сети с библиотекой scikit-leam.............................................234
6.3.5. Оценка качества обучения моделей в библиотеке scikit-leam................................237
6.3.6. Персептрон и библиотека scikit-leam....................................................................... 238
6.3.7. Классификаторы на основе логистической регрессии в библиотеке scikit-leam..............244
6.4. Библиотека Keras и сверточные нейронные сети.............................................................. 250
6.4.1. Общие сведения о библиотеке Keras........................................................................ 250
6.4.2. Сверточные нейронные сети..................................................................................... 251
6.4.3. Строим сверточную нейронную сеть с библиотекой Keras...............................................256
6.5. Нейронные сети с библиотекой TensorFlow....................................................................... 271
6.5.1. Строим простую нейронную сеть с библиотекой TensorFlow...............................................272
6.5.2. Строим нейронную сеть для классификации изображений
с библиотекой TensorFlow........................................................................................................277
6.6. Краткие итоги главы........................................................................................................295
Глава 7. Создание нейронных сетей обработки изображений:
библиотека ImageAI...............................................................................................................297
7.1. Классы распознавания и обнаружения объектов на изображениях...............................298
7.1.1. Распознавание объектов в изображениях: класс Imageclassification....................298
Функция .setModelTypeAsMobileNetV2().................................................................. 301
Функция ,setModelTypeAsResNet50()....................................................................... 301
Функция ,setModelTypeAsInceptionV3().................................................................... 301
Функция .setModelTypeAsDenseNetl21().................................................................... 301
Функция .setModelPath()............................................................................................ 301
Функция .loadModel()..................................................................................................302
Функция ,classifylmage()............................................................................................ 302
7.1.2. Обнаружение и извлечение объектов из изображений: класс Obj ectDetection...... 307
Функция .setModelTypeAsRetinaNetQ............................................................................308
Функция .setModelTypeAsYOLOv3Q...............................................................................308
Функция .setModelTypeAsTinyYOLOv3Q.........................................................................308
Функция .setModelPathQ............................................................................................ 309
Функция .loadModelQ................................................................................................. 309
Функция .detectObjectsFromlmageQ.............................................................................309
Функция .CustomObjectsQ.......................................................................................... 312
Функция .detectCustomObjectsFromlmageQ...................................................................314
7.2. Классы распознавания объектов в видеофайлах и видеопотоках.............................320
7.2.1. Обнаружение объектов в видеофайлах и видеопотоках с видеокамер:
класс VideoObjectDetection........................................................................................ 320
Функция .setModelTypeAsRetinaNetQ............................................................................321
Функция .setModelTypeAsYOLOv3Q...............................................................................321
Функция .setModelTypeAsTinyYOLOv3Q.........................................................................321
Функция .setModelPathQ............................................................................................ 322
Функция .loadModelQ................................................................................................. 322
Функция .detectObjectsFromVideoQ..............................................................................322
7.2.2. Примеры программы распознавания объектов в видеофайлах............................. 324
7.2.3. Пример программы распознавания объектов в видеопотоках с видеокамер...........327
7.2.4. Пример программы с пользовательскими функциями для распознавания
объектов в видеофайлах........................................................................................... 329
7.3. Обучение нейронных сетей на пользовательских наборах данных.........................341
7.3.1. Обучение нейронной сети на пользовательском наборе данных:
класс ClassificationModelTraining.............................................................................. 341
Функция .setModelTypeAsMobileNetV2()....................................................................343
Функция .setModelTypeAsResNet50()........................................................................343
Функция .setModelTypeAsInceptionV3Q....................................................................343
Функция .setModelTypeAsDenseNetl21Q....................................................................344
Функция .setDataDirectoryQ...................................................................................... 344
Функция .trainModelQ................................................................................................ 344
7.3.2. Пример программы обучения нейронной сети на пользовательском наборе
данных......................................................................................................................346
7.4. Применение пользовательских нейронных сетей с библиотекой ImageAI................ 350
7.4.1. Поиск пользовательских объектов в изображениях:
класс CustomlmageClassification............................................................................... 350
Функция .setModelTypeAsResNet50Q........................................................................350
Функция .setModelTypeAsInceptionV3Q....................................................................351
Функция .setModelTypeAsDenseNetl21 ()..................................................................351
Функция .setModelPathQ............................................................................................ 351
Функция .setJsonPathQ............................................................................................... 351
Функция .loadModelQ................................................................................................. 351
Функция .classifylmageQ............................................................................................ 352
7.4.2. Пример программы поиска пользовательских объектов в изображениях................353
7.5. Нейронные сети с архитектурой YOLOv3 для обнаружения объектов
в изображениях...................................................................................................... 355
7.5.1. Обучение пользовательской модели: класс Custom.DetectionModelTrainer......... 355
Метод .setModelTypeA$YOLOv3Q.............................................................................. 358
Метод .trainer.setDataDirectoryQ.............................................................................. 358
Метод ,trainer.setTrainConfig().................................................................................. 358
Функция .trainer,evaluateModelf).............................................................................. 360
7.5.2. Обнаружение и извлечение пользовательских объектов из изображений:
класс CustomObjectDetection.....................................................................................361
Метод ,setModelTypeAsYOLOv3()................................................................................ 364
Метод ,setModelPath().................................................................................................364
Метод ,setJsonPath()....................................................................................................364
Метод ,loadModel()......................................................................................................364
Метод ,detectObjectsFromImage().................................................................................. 364
7.5.3. Обнаружение и извлечение пользовательских объектов из видеопотоков
с видеокамер: класс CustomVideoObjectDetection.......................................................... 367
Метод ,setModelTypeAsYOLOv3()................................................................................. 370
Метод ,setModelPath().................................................................................................370
Метод .setJsonPath()....................................................................................................370
Метод .loadModel()......................................................................................................370
Метод ,detectObjectsFromVideo().................................................................................. 370
7.5.4. Формирование пользовательского обучающего набора данных:
приложение Labelling....................................................................................................374
7.5.5. Пример программы обучения модели YOLOv3 на пользовательском наборе
данных.............................................................................................................................383
7.5.6. Пример программы распознавания с помощью пользовательской модели
YOLOv3...............................................................................................................................384
7.6. Краткие итоги главы..................................................................................................... 386
Глава 8. Создание приложений для обработки изображений:
библиотека OpenCV............................................................................................................. 387
8.1. Обученные классификаторы Хаара для распознавания объектов в изображениях............. 388
8.2. Пример программы поиска лиц на фотографиях.............................................................390
8.3. Пример программы поиска лиц в видеопотоках с видеокамер...........................................392
8.4. Пример программы распознавания глаз на фотографиях................................................. 393
8.5. Пример программы распознавания эмоций на изображениях..........................................395
8.6. Пример программы распознавания автомобильных номеров на изображениях.................397
8.7. Пример программы распознавания автомобильных номеров в видеопотоке......................398
8.8. Пример программы распознавания движущихся автомобилей в транспортном
потоке...............................................................................................................................402
8.9. Пример программы распознавания различных объектов из одного программного
кода..................................................................................................................................403
8.10. Пример программы распознавания пешеходов на изображениях
с использованием OpenCV и HOG-детекторов.........................................................................405
8.11. Пример программы распознавания пешеходов на видео с использованием OpenCV и
HOG-детекторов..................................................................................................................408
8.12. Распознавание конкретных людей на фотографиях в OpenCV..........................................409
8.12.1. Пример программы для обучения модели распознавания лиц по
фотографиям........................................................................................................................412
8.12.2. Пример программы распознавания лиц конкретных людей на фотографиях.................. 419
8.13. Создание пользовательской модели распознавания людей в видеопотоке
с видеокамеры в OpenCV...................................................................................................... 423
8.13.1. Пример программы формирования обучающей выборки пользователя
для тренировки модели распознавания конкретных людей.......................................................423
8.13.2. Пример программы обучения модели на основе обучающей выборки
пользователя....................................................................................................................... 425
8.13.3. Программа распознавания лиц людей на основе обучающей выборки
пользователя....................................................................................................................... 427
8.14. Краткие итоги главы.................................................................................................... 430
Приложение. Описание электронного архива...........................................................................431
Список литературы............................................................................................................... 440
Книги...................................................................................................................................440
Электронные ресурсы........................................................................................................... 440
Предметный указатель...........................................................................................................444
Download
Rutracker.org не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм
Как скачивать? (для скачивания .torrent файлов необходима регистрация)
[Профиль]  [ЛС] 

GregHause

Стаж: 14 лет 6 месяцев

Сообщений: 2

GregHause · 13-Окт-23 22:16 (спустя 15 дней)

А почему год издания 2024?
Если смотреть скрины второе издание от 2021 года.
[Профиль]  [ЛС] 

tsurijin

Стаж: 4 года 10 месяцев

Сообщений: 2900


tsurijin · 14-Окт-23 00:44 (спустя 2 часа 28 мин., ред. 14-Окт-23 00:44)

GregHause писал(а):
85321676А почему год издания 2024?
Если смотреть скрины второе издание от 2021 года.
Спасибо что напомнили про 2-е издание - исправил. 2024 год в книге указан. Что за скрины от 2021 года?
[Профиль]  [ЛС] 

argon-83

Стаж: 15 лет 2 месяца

Сообщений: 460

argon-83 · 14-Окт-23 23:31 (спустя 22 часа, ред. 14-Окт-23 23:31)

Это жесть... Такое происходит в коде этой книги, что просто лопаются глаза от ужаса.... Вот почему такие книги вообще появляется в принципе? Для кого? Зачем??? Вся эта книга, от самого первого символа и до самого последнего, показывает КАК НИ В КОЕМ СЛУЧАЕ ДЕЛАТЬ НЕЛЬЗЯ!
[Профиль]  [ЛС] 

onlando

Стаж: 16 лет 10 месяцев

Сообщений: 25


onlando · 11-Ноя-23 13:09 (спустя 27 дней)

argon-83 писал(а):
85325749Это жесть... Такое происходит в коде этой книги, что просто лопаются глаза от ужаса.... Вот почему такие книги вообще появляется в принципе? Для кого? Зачем??? Вся эта книга, от самого первого символа и до самого последнего, показывает КАК НИ В КОЕМ СЛУЧАЕ ДЕЛАТЬ НЕЛЬЗЯ!
Спасибо за комментарий. Немного начинал читать книгу в предыдущей редакции, потом перестал. Можете пояснить на примерах, какие именно моменты не соответствуют Вашим представлениях. Не хотелось бы перенимать плохие практики, но саму тему хотелось бы разобрать.
[Профиль]  [ЛС] 

bratok_real

Стаж: 14 лет 9 месяцев

Сообщений: 6


bratok_real · 12-Ноя-23 14:48 (спустя 1 день 1 час)

argon-83 писал(а):
85325749Это жесть... Такое происходит в коде этой книги, что просто лопаются глаза от ужаса.... Вот почему такие книги вообще появляется в принципе? Для кого? Зачем??? Вся эта книга, от самого первого символа и до самого последнего, показывает КАК НИ В КОЕМ СЛУЧАЕ ДЕЛАТЬ НЕЛЬЗЯ!
А где с вашей книгой можно ознакомиться?
[Профиль]  [ЛС] 

vvd-ru

Стаж: 15 лет 2 месяца

Сообщений: 1


vvd-ru · 02-Апр-24 16:59 (спустя 4 месяца 20 дней)

bratok_real писал(а):
85461471
argon-83 писал(а):
85325749Это жесть... Такое происходит в коде этой книги, что просто лопаются глаза от ужаса.... Вот почему такие книги вообще появляется в принципе? Для кого? Зачем??? Вся эта книга, от самого первого символа и до самого последнего, показывает КАК НИ В КОЕМ СЛУЧАЕ ДЕЛАТЬ НЕЛЬЗЯ!
А где с вашей книгой можно ознакомиться?
Скриншоты в питоном 3.7 и 3.8 в 2024
[Профиль]  [ЛС] 

Виктор Харченко

Стаж: 15 лет 8 месяцев

Сообщений: 74

Виктор Харченко · 08-Дек-24 21:29 (спустя 8 месяцев, ред. 08-Дек-24 21:29)

argon-83 писал(а):
85325749Это жесть... Такое происходит в коде этой книги, что просто лопаются глаза от ужаса.... Вот почему такие книги вообще появляется в принципе? Для кого? Зачем??? Вся эта книга, от самого первого символа и до самого последнего, показывает КАК НИ В КОЕМ СЛУЧАЕ ДЕЛАТЬ НЕЛЬЗЯ!
Главное каркнуть. Нормальные программисты к своим претензиям прикладывают код. Бегло просмотрел до описания и создания классов, особо косяков не обнаружил. Наоборот очень все доступно объясняется, даже такая сложная вещь как объекты. Автор конечно упрощает многие вещи, но это книга для начинающих, людей которые ни разу не программировали. Если вдаваться в детали до конца можно и не дойти. Переменные с коробочками очень хорошо описал.Например циклы автор описывает не просто
а на примере конструкции с многочисленными print() функциями, конструкция с циклом делает тоже самое но короче и проще - что наглядно показывает зачем циклы. Хотя упрощение при описании классов может и тормознуть. Само описание классов очень хорошо, но там чуток намешено и непонятно что описание класса это по сути создание документации. Которая потребуется при создании конкретных объектов(это как с функциями - описываете вы их в одном месте, а затем вызываете по короткой записи function(), тут так же описываете в классе из чего должен состоять объект, а потом уже создаете конкретный объект которым пользуетесь) и например self как раз будет нужна уже конкретному объекту. Например когда вы создаете несколько конкретных объектов "кошка", благодаря self программа не перепутает одну кошку с другой(если вы покрасите конкретную кошку в зеленый цвет, то именно эта кошка и покраситься и будет все время зеленой).
P.S У конкретного объекта вы никогда не увидите параметр self, это не значит что его нет. В недрах памяти Python он есть и на него можно посмотреть. Только для этого в описании класса нужно создать метод
Код:

class Cat:
    def kak_vygljadit_self(self):
        return "Self выглядит как", self
#Затем создать конкретный объект и вызвать этот метод
konkretnaja_cat = Cat()
print(konkretnaja_cat.kak_vygljadit_self())
На что программа выдаст строку похожую на эту
('Self выглядит как', <__main__.Cat object at 0x0000022665CC4910>)
Где номер как раз и есть self из -за которого программа не перепутает эту кошку с другими - индификатор объекта.
P.S2 Конкретный объект, реальный объект, экземпляр класса(по английски сlass instance), объект класса и т.д. - это все синонимы. Из-за правил русского языка чтобы не было тавтологии, авторам приходится пользоваться многочисленными синонимами, что ясности при объяснении не добавляет. Тут прикол еще в чем что в многих учебниках начинают с объяснения смысла, понятия объект, и там все не однозначно когда встречается просто такое слово нужно быть осторожным и в зависимости от автора это может быть конкретный объект, а может быть синоним для класса. В общем мозги могут вылететь на раз. В этой книге я такой путаницы не заметил.
P.S3 Мое описание тоже может запутать, но классы и объекты не простая тема для быстрого освоения. Дорогу осилит идущий. Просто не сдавайтесь смотрите разные источники, делайте перерыв если чувствуете что уперлись лбом в стену, в неделю, в месяц, пару месяцев и снова в бой.
Возвращаясь к книге, скажу что плохие книги не переиздают. И плюс автору что он что-то переписал и внес правки, что не часто встречается. Еще плюсом лично для меня что автор пользуется PyCharm а не гребаным jupiter notebook, который практически стандарт в программировании ИИ и на основе его практически все уроки по ИИ. Ничего не имею против jupiter notebook, вещь полезная и удобная но мне не зашла.
Претензия к старому Python 3.7, 3.8, просто смешная. Книжка пишется и переписывается не за один день, в каком Питоне автор начал, в том и закончил. Python 3.7 вполне актуален. А также для таких случаев и существует виртуальное окружение, в котором кстати автор создает проект при знакомстве с Pycharm, что кстати также плюсом ему едет, не все так делают. Правда не объясняет что это такое, но так это книжка не по Python(на 23 страницах у автора выложено самое основное, за такой небольшой объем язык не выучить, даже книжки типа "какой то язык за 21 день", толще чем 23 страницы), если все писать книга будет толще и дороже.
P.S Кстати даже за те 75 страниц что пролистал узнал кое что новое для себя, это про существование PyQt5Designer, уже лет десять на Питоне сижу а про такую хорошую вещь не знал, пользовался WxPython - вещь хорошая, но когда программируешь редко как я, все забывается и приходится тупить какое то время. С графическим интерфейсом как у Delphi конечно сокращается время создания оконного приложения.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error