The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Книга рассказывает о применении искусственного интеллекта и машинного обучения в бизнесе и инженерной практике. Подробно описаны популярные алгоритмы машинного обучения и разъяснено, когда их целесообразно использовать. Приведены примеры построения моделей машинного обучения на языке Python с помощью библиотеки Scikit-Learn, а также создания нейронных сетей посредством библиотек Keras и TensorFlow. Изложены базовые принципы и способы оценки регрессионных моделей, моделей бинарной и многоклассовой классификации. Показаны примеры создания модели распознавания лиц и обнаружения объектов, языковых моделей, отвечающих на естественно-языковые вопросы и переводящих текст на другие языки. Рассмотрено использование набора облачных API Cognitive Services для внедрения ИИ в различные приложения.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2024-06-16 10:53:42

Прикладное машинное обучение и искусственный интеллект для инженеров

Книга рассказывает о применении искусственного интеллекта и машинного обучения в бизнесе и инженерной практике. Подробно описаны популярные алгоритмы машинного обучения и разъяснено, когда их целесообразно использовать. Приведены примеры построения моделей машинного обучения на языке Python с помощью библиотеки Scikit-Learn, а также создания нейронных сетей посредством библиотек Keras и TensorFlow. Изложены базовые принципы и способы оценки регрессионных моделей, моделей бинарной и многоклассовой классификации. Показаны примеры создания модели распознавания лиц и обнаружения объектов, языковых моделей, отвечающих на естественно-языковые вопросы и переводящих текст на другие языки. Рассмотрено использование набора облачных API Cognitive Services для внедрения ИИ в различные приложения.

Keywords: ML,TensorFlow

ГЛ А В А 1 4 Azure Cognitive Services В моем детстве в 1960-х годах я боготворил астронавтов "Аполлона". Выходящие на стартовую площадку и отправляющиеся в космос на огнедышащих ракетах, они были моими супергероями. Но те, кому я действительно хотел подражать — те, кем я хотел стать, — были инженерами в Mission Control (Центре управления полетами). Сидящие перед своими ЭЛТ-экранами в белых рубашках и черных галстуках, переговаривающиеся с астронавтами и готовые действовать при первых признаках неполадок, они были воплощением крутизны. Они использовали компьютеры меньшей мощности, чем современные смартфоны, для отправки людей на Луну — научное достижение, которое не превзойдено и по сей день. Благодаря глубокому обучению компьютеры сегодня могут совершать такие волшебные подвиги, о которых инженеры в Mission Control могли только мечтать. Они могут распознавать объекты на изображениях, переводить текст и речь на другие языки, идентифицировать людей в видеопотоке, превращать искусство в слова, а слова — в искусство и многое другое. Но современные модели глубокого обучения слишком сложны и дорогостоящи, чтобы их мог создать обычный инженер или разработчик программного обеспечения. По имеющимся данным, Microsoft потратила сотни тысяч долларов на обучение модели ResNet, которая победила в 2015 году в конкурсе ImageNet Large Scale Visual Recognition Challenge. Создание этой модели потребовало большого опыта, огромного количества времени GPU и миллионов изображений. Сегодня в сфере искусственного интеллекта наблюдается положительный тренд — искусственный интеллект как сервис. Microsoft, Amazon, Google и другие технологические гиганты нанимают профессиональных специалистов по обработке данных, создающих сложные модели глубокого обучения. Компании обучают модели за свой счет и предоставляют их всем желающим с помощью REST API (https://oreil.ly/OGfQf). Если вы умеете программировать код для отправки HTTPзапроса через Интернет, вы можете использовать эти API для внедрения искусственного интеллекта в свои приложения, не отрываясь от основной работы для получения степени доктора наук в области глубокого обучения. Microsoft называет свой набор сервисов для работы с искусственным интеллектом Azure Cognitive Services (https://oreil.ly/NhIQs). Amazon использует название AWS AI Services (https://oreil.ly/dmLGH). Оба сервиса предлагают богатый набор API, обслуживаемых моделями глубокого обучения на внутреннем уровне — моделями,


Глава 14. Azure Cognitive Services | 393 которые постоянно совершенствуются, чтобы со временем стать еще умнее. Нужно сделать подписи к фотографиям, загруженным на сайт? Сервис Computer Vision (https://oreil.ly/K7C1P) от Microsoft может это выполнить, как и сервис Rekognition (https://oreil.ly/NGDCv) от Amazon. А как насчет создания программы для чтения с экрана с реалистичным человеческим голосом, чтобы помочь слабослышащим людям? С этим справится Amazon Polly (https://oreil.ly/H4Zfe), а также Speech (https://oreil.ly/D5M1S) от Azure Cognitive Services и API преобразования текста в речь (https://oreil.ly/8OzPW) Google. Это лишь несколько примеров того, какие действия могут выполнять когнитивные сервисы, причем зачастую благодаря всего нескольким строчкам кода. Вы видели работу Azure Cognitive Services в главе 12, когда использовали сервис Custom Vision (https://oreil.ly/NAW9S) для обучения пользовательской модели обнаружения объектов. Это один из нескольких сервисов, входящих в семейство Cognitive Services. В этой главе представлены другие и показано, как их использовать и как создавать с их помощью решения. Особое внимание к Azure Cognitive Services не означает, что они лучше своих аналогов от Amazon и Google. Просто я лучше знаком с ними, поскольку тесно сотрудничаю с Microsoft уже более двух десятилетий. Как только вы научитесь вызывать API-интерфейсы Azure Cognitive Services, вам не составит труда применить эти знания к когнитивным сервисам других разработчиков. Готовы творить волшебство? Давайте начнем. Знакомство с Azure Cognitive Services Набор сервисов, из которых состоит Azure Cognitive Services, время от времени меняется по мере добавления новых сервисов, устаревания других или их перехода в прочие линейки продуктов Microsoft. На рис. 14.1 показаны сервисы, которые предлагаются в настоящее время, и они разделены на четыре категории: зрение, язык, речь и принятие решений. Рис. 14.1. Azure Cognitive Services Сервисы зрения позволяют использовать глубокие нейронные сети для решения проблем компьютерного зрения. Сервис Custom Vision позволяет создавать пользо-


Предметный указатель A Activation function 207 Adam, класс, оптимизатор 217 AgglomerativeClustering, класс 46 AlexNet 247 AlphaGo 34 Amazon Polly 393 Anchor 324 boxes 324 ArcFace 310 Artificial intelligence (AI). См. Искусственный интеллект AudioConfig, класс 418 Average pooling 249 AWS AI Services 392 Azure AI Vision 246 Azure Cognitive Services 337, 392 Azure Multivariate Anomaly Detector 178 B Bag of words 107 Bidirectional encoder representations from transformers (BERT) 381 Bilingual evaluation understudy (BLEU) 377 C California housing dataset, набор данных 71 Callback, класс 242 Caret 201 CascadeClassifier, класс 294 COCO, набор данных 326 Computer Vision Service 393, 402 ComputerVisionClient, класс 403, 406 Confusion matrix. См. Матрица ошибок ConfusionMatrixDisplay, класс 88 Conv1D, класс 251 Conv2D, класс 250 Conv3D, класс 251 Convolution kernel 247 Convolutional neural network (CNN) 206, 247 региональная 321 CountVectorizer, класс 108, 111, 182, 195, 350 CSVLogger, класс 243 Custom Vision service 337 D Data view 195 DataOperationsCatalog, класс 195 DBSCAN: класс 46 кластеризация 46 DecisionTreeClassifier, класс 63, 82 DecisionTreeRegressor, класс 63, 68 Deep learning (DL). См. Обучение глубокое Deep neural network 206 Dense, класс 216 Digits, набор данных 166, 167 Docker 180, 187 Dropout. См. Отсев Dropout, класс 239 E EarlyStopping, класс 242 Embedding, класс 353 F F1-мера 85 Face: embedding 310 verification 310 Flask 180, 185, 418 G Generative adversarial network (GAN) 206 GitHub 55 GlorotUniform, класс, инициализатор 218


Предметный указатель | 425 Google Colab 377 Gradient-boosted decision trees (GBDT) 67 Gradient-boosting machines (GBM) 48, 67 GradientBoostingClassifier, класс 68, 82 GradientBoostingRegressor, класс 68 Graphics processing unit (GPU) 35, 205 GridSearchCV, класс 136 GRU, класс 363 H H2O 193 H5, формат 240 HashingVectorizer, класс 108, 111 Hugging Face 364 I IDataView, интерфейс 195 ImageDataGenerator, класс 272 ImageNet, набор данных 260 Instance segmentation 324 Intersection-over-union (IoU) 321 Iris, набор данных 52 Isomap, класс 165 J Java-ML 201 K Keras 213, 215 API для нейронных сетей: – последовательный 215 – функциональный 215 decode_predictions, метод 262 get_weights, метод 240 pad_sequences, функция 352 preprocess_input, функция 262 set_weights, метод 240 инициализаторы 218 обратные вызовы 241 оптимизаторы 217 KerasNLP, пакет 371 Kernel trick 69 k-means clustering 36 KMeans, класс 38 k-nearest neighbors 49 KNeighborsClassifier, класс 51, 54, 82 KNeighborsRegressor, класс 51 Kubernetes 187 L Labeled Faces in the Wild (LFW), набор данных 33, 143, 154, 235, 302 Language Service 412 Lasso, класс 59 LearningRateScheduler, класс 243 Limited-memory Broyden — Fletcher — Goldfarb — Shanno (L-BFGS) 83 LinearRegression, класс 59 LinearSVC, классификатор 148 LoadColumnAttribute, класс 196 Log loss 226 LogisticRegression, класс 83, 113, 182, 195 LogisticRegressionCV, класс 84 Long Short-Term Memory (LSTM) 363 LSTM, класс 363 M Machine learning. См. Обучение машинное Mask R-CNN 324 Masked language modeling (MLM) 381 Matplotlib 37, 163 Max pooling 249 MaxPooling2D, класс 250 Mean absolute error (MAE) 217 Mean average precision (mAP) 344 Mean squared error (MSE) 58, 74, 217 Microsoft Cognitive Toolkit (CNTK) 215 Mini-batch gradient descent (MBGD) 213 MinMaxScaler, класс 138 ML.NET 193, 194 книга рецептов 194 репозиторий GitHub с примерами 194 MLContext, класс 195 Model, свойство 197 MLPClassifier, класс 208 MLPRegressor, класс 208 MNIST, набор данных 251 MobileNetV2, класс 261 ModelCheckpoint, класс 243 ModelOperationsCatalog, класс: CreatePredictionEngine, метод 195 Load, метод 197 Save, метод 197 Mplot3D 164 Multi-head attention (MHA) 369 MultiHeadAttention, класс 371


426 | Предметный указатель Multilayer perceptron 206 MultinomialNB, класс 118, 120 Multitask cascaded convolutional neural networks (MTCNN) 296 N Naive Bayes 115 Natural language processing (NLP) 206, 349 Natural Language Toolkit (NLTK) 110 Neural machine translation (NMT) 366 Non-maximum suppression (NMS) 321 NumPy 254 tensordot, функция 254 NuSVC, классификатор 148 n-грамма 109 O One-hot encoding 89 OneHotEncoder, класс 90 one-vs-rest 101 Open Neural Network Exchange (ONNX) 181, 189, 325 OpenCV 294 Optical Recognition of Handwritten Digits, набор данных 102, 164 Output network (O-Net) 296 P Pandas 180 Perceptron, класс 208 PolynomialFeatures, класс 59 Pooling layer 247 Precision. См. Точность PredictionEngineBase<TSrc,TDst>, класс: Predict, метод 195 Principal component analysis (PCA) 60, 151 Proposal network (P-Net) 296 Python Imaging Library (PIL) 301 Python Librosa 283 PyTorch 215 R Radial basis function (RBF) 131 RadiusNeighborsClassifier, класс 52, 55 RadiusNeighborsRegressor, класс 51 RandomForestClassifier, класс 65, 82 RandomForestRegressor, класс 65 Recall. См. Полнота Rectified linear unit (ReLU) 208 Recurrent neural network (RNN) 206 Refine network (R-Net) 296 Region of interest (ROI) 323 Region proposal network (RPN) 323 Region-based/region CNN (R-CNN) 321 Rekognition 393 ReLU 220 ResNet-152 247 ResNet50V2 262 REST API 180, 185, 392 Ridge, класс 59 RocCurveDisplay, класс 87 Rules-based machine translation (RBMT) 366 S SavedModel 240 Scaper 282 Scikit-Learn 36, 180 Scree plot 157 SdcaLogisticRegressionBinaryTrainer, класс 195 Seaborn 60 Segmentation mask 324 Sensitivity. См. Чувствительность Sequential, класс 216 add, функция 216 Similarity matrix 124 Specificity. См. Специфичность Speech 393 Speech Service 416 SpeechRecognizer, класс 417 SpeechSynthesizer, класс 417 SQuAD 2.0, набор данных 383 StandardScaler, класс 138, 141 StandardTrainersCatalog, класс: SdcaLogisticRegression, метод 195 Stochastic gradient descent (SGD) 213 StopCallback, класс 242 Stop-words, библиотека 110 Supervised learning 47, 168 Support vector classifier (SVC) 128 Support vector machines (SVM) 48, 69, 128, 168 Support vector regressor (SVR) 128 SVC, класс 70, 128 SVR, класс 70, 128


Предметный указатель | 427 T t-Distributed stochastic neighbor embedding (t-SNE) 60, 165 Tensor processing unit (TPU) 205 TensorBoard: инструмент 243 класс 243 TensorFlow 213, 215 TensorFlow Lite 281 TextAnalyticsClient, класс 412, 413 TextCatalog, класс: FeaturizeText, метод 195 TextFeaturizingEstimator, класс 195 Text-to-Speech AI 393 TfidfVectorizer, класс 108 Theano 215 Tidymodels 201 Titanic, набор данных 91 Tokenizer, класс 350, 351 Transfer learning 193, 265 Transformers, пакет 365 TranslationRecognizer, класс 417 Translator Service 415 TSNE, класс 165 U UrbanSound8K, набор данных 282 User-defined function (UDF) 197 V VGGFace 310 класс 308 X Xlwings, библиотека 197 Y You Only Look Once (YOLO) 331 Z Zeroes, класс, инициализатор 218 А Алгоритм: CART 63 k ближайших соседей 49 Виолы — Джонса 292 обратного распространения ошибки 211 обучения 29 ограниченной памяти Бройдена — Флетчера — Голдфарба — Шанно 83 подавления немаксимумов 321 селективного поиска 321 Анализ: главных компонент 60, 151 настроения 32, 107, 365 пространственный 402 Аугментация данных 267, 272 Б Бустинг градиентный 48, 66 В Валидация перекрестная 72 k-кратная 73 Вектор: опорный 128 слов 349 Векторизация 107 Верификация лица 310 Вероятность 31 Вес 207 Внимание многоголовое 369 Выброс 59 Вызов обратный 241 Выпрямленные линейные единицы 208 Выравнивание ROI 324 Г Главная компонента набора данных 152 Глубина нейронной сети 219 Градиент исчезающий 220, 363 Граница классификационная 48 График осыпи 157 Д Дерево: бинарное 61 двоичное 61 решений 61 – с градиентным бустингом 67


428 | Предметный указатель Диаграмма осыпная 157 Диаграммы парные 60 Дисперсия единичная 141 Дублер двуязычной оценки 377 З Значение категориальное 89 Зрение компьютерное 246 И Идентификация лиц 290 Изображение интегральное 293 Инерция 38 Искусственный интеллект 33, 206 К Классификатор: бинарный 90 каскадный 292 с закрытым набором 317 с открытым набором 318 Классификация: бинарная 90, 225 изображений 32 многоклассовая 100 мультиклассовая 100 текста 32, 354 Кластеризация 36 DBSCAN 46 агломеративная 46 по методу k средних 36 пространственная для приложений с шумом на основе плотности 46 Кодирование: горячее 89 меток 43 позиционное 371 Контейнер 187 образ 187 Коэффициент: детерминации 73 Джини 63 обучения 68 Кривая: рабочей характеристики приемника 86 сигмоидная 82 Кросс-валидация 72 Кросс-энтропия бинарная 226 Л Ландшафт потерь 212 Лемматизация 110 Лес случайный 48, 65 М Маска сегментации 324 Матрица: ковариационная 154 ошибок 87, 148 подобия 124 Машины: градиентно-бустинговые 67 опорных векторов 128 – одноклассовые 168 Метод: analyze_image_in_stream 406 corr 76 describe_image 403 describe_image_in_stream 403, 404 extract_key_phrases 414 fit 55, 73 fit_on_texts 350 from_estimator 88 from_predictions 88 inverse_transform 111, 154 LoadFromTextFile 195 predict 54, 84, 185, 219 predict_proba 84, 185 read_in_stream 409 recognize_entities 413 recognize_once_async 417 recognize_pii_entities 414 recognize_printed_text_in_stream 409 score 54, 70, 84 sequences_to_texts 351 summary 222 tag_image_in_stream 404 texts_to_sequences 350 локтя 38 опорных векторов 48, 69, 128 соседей по радиусу 51 Мешок слов 107, 361 Моделирование: аддитивное 67 ансамблевое 66 регрессионное 57 языка по маске 381


Предметный указатель | 429 Модель: анализа настроения 365 классификации изображений 364 классификационная 47 – бинарная 47, 81 – двоичная 81 – многоклассовая 47, 81 – многометочная 81 – мультиклассовая 81 обнаружения объектов 364 обучения: – контролируемого 35 – неконтролируемого 35 регрессионная 47 Модуль: NimbusML 193 pickle 181 Мультиколлинеарность 59 Н Набор данных: California housing dataset 71 COCO 326 Digits 166, 167 ImageNet 260 Iris 52 Labeled Faces in the Wild (LFW) 33, 143 154, 235, 302 MNIST 251 Optical Recognition of Handwritten Digits 102, 164 SQuAD 2.0 383 Titanic 91 UrbanSound8K 282 для прогнозирования отказов подшипников 172 кинорецензий IMDB 111, 358 морские черепахи 338 о фильмах 124 по раку молочной железы 138, 162 примеры 52 со звуками тропических лесов 282 спамерских писем 119, 355 транзакций по кредитным картам 96, 168 Наивный Байес 115, 225 Настройка гиперпараметров 127, 135 Нейрон 206 Нормализация: Z-score 141 данных 60 пакетная 261 О Область интереса 323 Обнаружение: аномалий 167 – многомерных 178 лиц 290, 291 Обработка естественного языка 206, 349 Образ контейнера 187 Обучение 29 ансамблевое 66 без учителя 35 глубокое 34, 205, 206 инкрементное 241 контролируемое 47, 168 – модели 47 машинное 29, 33 непрерывное 241 с учителем 35, 168 трансферное 193, 247, 264, 265 Окклюзия 342 Оптимизатор 136, 211 Отсев 238 Оценка объектности 324 Оценщик 142 Ошибка: восстановления 168 среднеквадратическая 58, 74, 217 средняя абсолютная 217 П Пакет: Microsoft.ML.OnnxRuntime 190 NuGet 190 Onnxruntime 189 Skl2onnx 189 Память долгая краткосрочная 363 Перевод: машинный на основе правил 366 нейромашинный 366 Переобучение 64, 279 Перцептрон многослойный 206 Пни деревьев решений 67 Поиск селективный 321 Показатель пересечения и объединения 321


430 | Предметный указатель Полнота 85 Потеря: кросс-энтропийная 226 логарифмическая 226 Правильность 84 Представление данных 195 Произведение: скалярное 131 тензорное точечное (скалярное) 254 Производная частная 59 Процессор: графический 35, 205 тензорный 205 Пулинг: ROI 323 глобальный 280 максимальный 249 средний 249 Р Рамка якорная 324 Распознавание лиц 290, 302 Расстояние: евклидово 51 манхэттенское 51 Минковского 51 Регион интереса 323 Регрессия: линейная 48, 57 – множественная 59 – простая 59 логистическая 82, 225 – мультиномиальная 101 по методу наименьших квадратов 58 Регуляризация 59 Реестр контейнера 188 С Самовнимание 369 Сглаживание: аддитивное 117 Лапласа 117 Сегментация экземпляров 324 Сеть: выходная 296 генеративная состязательная 206 нейронная: – глубина 219 – глубокая 206 – для бинарной классификации 226, 229 – для регрессии 222 – обучение 211 – рекуррентная 206, 362 – сверточная 206, 247 ▫ многозадачная каскадная 296 ▫ предварительно обученная 260 – ширина слоя 219 предложений 296 – областей 323 усовершенствований 296 Система: обучения с подкреплением 34 рекомендательная 122 рекомендаций: – коллаборативная 122 – контентная 122 – основанная на популярности 122 экспертная 33 Словарь 108, 350 Слой: Conv1D 361 Conv2D 219 Dropout 219 MaxPooling1D 361 RepeatVector 367 TimeDistributed 367 TokenAndPositionEmbedding 371 TransformerDecoder 371 TransformerEncoder 371 классификационный 250 объединяющий 247, 249 остаточный 261 плотный 250 полносвязный 207 пулинговый 247, 249 рекуррентный 362 сверточный 247 скрытый 206 субдискретизации 247 ширина 219 эмбеддинговый 349, 353 Смещение 207 Спам-фильтр 35 Спектрограмма 281 Специфичность 88 Спуск стохастический градиентный 213 Стандартизация 141 Стемминг 110


Предметный указатель | 431 Столбец: категориальный 89 меток 30 признаков 30 Стохастическое вложение соседей с tраспределением 60, 165 Сходство косинусное 123 Т Тензор 215 Теорема: аппроксимации 208 Байеса 115 Ковера 129 Токен 350 Точность 85 средняя 344 Трансформер 349 Трюк ядерный 69, 131 У Узел 206 листовой 62 Ф Файл: bearings.csv 172 creditcard.csv 96, 168, 228 customers.csv 39 Dockerfile 188 en-fr.txt 372 ham-spam.csv 119 movies.csv 124 reviews.csv 112 sentiment.pkl 185 taxi-fares.csv 221 titanic.csv 91 vggface.h5 308, 313 изображений белых медведей 256 с изображениями лиц 312 Формат: H5 240 SavedModel 240 Функция: binary_crossentropy 226 confusion_matrix 88 cosine_similarity 123, 311 cross_val_score 73 f1_score 85 fit 54 load_iris 52 logit 82 make_blobs 37 make_pipeline 142, 182 MobileNetV2 284 pairplot 60 precision_score 85 recall_score 85 roc_auc_score 87 scatter 37 softmax 101 train_test_split 53, 70, 218 активации 207 – relu 216 – sigmoid 216, 225, 233 – softmax 216, 233 – tanh 216 логистическая 82 определяемая пользователем 197 потерь: – categorical_crossentropy 235 – sparse_categorical_crossentropy 233 Ч Чувствительность 88 Ш Ширина слоев нейронной сети 219 Шум 159 Э Эмбеддинг: лица 310 позиционный 371 слов 349 Энтропия перекрестная 226 Эпоха 217 Эстиматор 142 Я Ядро 248 RBF 131 линейное 131 полиномиальное 131 сверточное 247 сигмоидное 131 Собеля нижнее 248 Якорь 324


Джеф Просиз Прикладное машинное обучение и искусственный интеллект для инженеров Перевод с английского И. Донченко ТОО "АЛИСТ" 010000, Республика Казахстан, г. Астана, пр. Сарыарка, д. 17, ВП 30 Подписано в печать 14.05.24. Формат 70100 1 /16. Печать офсетная. Усл. печ. л. 34,83. Тираж 1200 экз. Заказ № Отпечатано с готового оригинал-макета ООО "Принт-М", 142300, РФ, М.О., г. Чехов, ул. Полиграфистов, д. 1


Click to View FlipBook Version