Openbravo-rus.ru

Образование по русски
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Python машинное обучение

Автостопом по машинному обучению на Python

Автостопом по машинному обучению на Python

    Переводы , 30 сентября 2017 в 22:18

Машинное обучение на подъеме, этот термин медленно забрался на территорию так называемых модных слов (buzzword). Это в значительной степени связано с тем, что многие до конца не осознают, что же на самом деле означает этот термин. Благодаря анализу Google Trends (статистике по поисковым запросам), мы можем изучить график и понять, как рос интерес к термину «машинное обучение» в течение последних 5 лет:

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

Классификация

Не стесняйтесь пропускать алгоритм, если чего-то не понимаете. Используйте это руководство так, как пожелаете. Вот список:

  1. Линейная регрессия.
  2. Логистическая регрессия.
  3. Деревья решений.
  4. Метод опорных векторов.
  5. Метод k-ближайших соседей.
  6. Алгоритм случайный лес.
  7. Метод k-средних.
  8. Метод главных компонент.

Наводим порядок

Вы явно расстроитесь, если при попытке запустить чужой код вдруг окажется, что для корректной работы у вас нет трех необходимых пакетов, да еще и код был запущен в старой версии языка. Поэтому, чтобы сохранить драгоценное время, сразу используйте Python 3.6.2 и импортируйте нужные библиотеки из вставки кода ниже. Данные брались из датасетов Diabetes и Iris из UCI Machine Learning Repository . В конце концов, если вы хотите все это пропустить и сразу посмотреть код, то вот вам ссылка на GitHub-репозиторий .

Линейная регрессия

Возможно, это самый популярный алгоритм машинного обучения на данный момент и в то же время самый недооцененный. Многие специалисты по анализу данных забывают, что из двух алгоритмов с одинаковой производительностью лучше выбирать тот, что проще. Линейная регрессия — это алгоритм контролируемого машинного обучения, который прогнозирует результат, основанный на непрерывных функциях. Линейная регрессия универсальна в том смысле, что она имеет возможность запускаться с одной входной переменной (простая линейная регрессия) или с зависимостью от нескольких переменных (множественная регрессия). Суть этого алгоритма заключается в назначении оптимальных весов для переменных, чтобы создать линию (ax + b), которая будет использоваться для прогнозирования вывода. Посмотрите видео с более наглядным объяснением.

Теперь, когда вы поняли суть линейной регрессии, давайте пойдем дальше и реализуем ее на Python.

Начало работы

Визуализация

Реализация

Логистическая регрессия

Логистическая регрессия – алгоритм контролируемой классификации. Она позволяет предсказывать значения непрерывной зависимой переменной на интервале от 0 до 1. Когда начинаешь изучать логистическую регрессию, складывается впечатление, что это своего рода узкоспециализированная вещь, и поэтому не уделяешь ей должного внимания. И лишь позже понимаешь, что очень ошибался. Некоторые из основных аспектов логистической регрессии лежат в основе других важных алгоритмов машинного обучения, например, для повышения точности прогноза нейросетевой модели . Имейте это в виду и смотрите видео ниже.

Теперь попробуем реализовать этот алгоритм на Python.

Начало работы

Визуализация

Реализация

Деревья решений

Метод деревьев решений (decision trees) – это один из наиболее популярных методов решения задач классификации и прогнозирования. Опыт показывает, что чаще всего данный алгоритм используется именно для классификации. На входе модель принимает набор атрибутов, характеризующих некую сущность, а затем спускается по дереву, тестируя их в зависимости от того, какие значения может принимать целевая функция. Таким образом, классификация каждого нового случая происходит при движении вниз до листа, который и укажет нам значение целевой функции в каждом конкретном случае. Деревья принятия решений становятся все более популярными и могут служить очень сильным инструментом для аналитики данных, особенно в сочетании с простыми методами композиции, такими как случайный лес, бустинг и бэггинг. И снова просмотрите видео ниже, чтобы более подробно изучить базовую функциональность деревьев решений.

А теперь по традиции перейдем к практике и реализуем данный алгоритм на Python.

Начало работы

Реализация

Визуализация

Метод опорных векторов

Метод опорных векторов , также известный как SVM, является широко известным алгоритмом классификации, который создает разделительную линию между разными категориями данных. Как этот вектор вычисляется, можно объяснить простым языком — это всего лишь оптимизация линии таким образом, что ближайшие точки в каждой из групп будут наиболее удалены друг от друга.

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

И по традиции реализация на Python.

Начало работы

Реализация

Визуализация

Метод k-ближайших соседей

K-Nearest Neighbors , или KNN, представляет собой контролируемый алгоритм обучения, который используется преимущественно для решения задач классификации. Данный алгоритм наблюдает за разными центрами (центроидами) и сравнивает расстояние между ними, используя для этого различные функции (обычно евклидово расстояние). Затем определяется, к какому классу принадлежит большинство ближайших объектов обучающей выборки – к этому классу относится и неизвестный объект. Посмотрите видео для того, чтобы увидеть что происходит за кулисами данного алгоритма.

Теперь, когда вы поняли общую концепцию метода k-ближайших соседей, давайте напишем реализацию на Python.

Начало работы

Визуализация

Реализация

Случайный лес

Случайный лес — популярный алгоритм контролируемого обучения, заключающийся в использовании комитета (ансамбля) решающих деревьев. «Ансамбль» означает, что он берет кучу «слабых учеников» и объединяет их, чтобы сформировать один сильный предиктор. «Слабые ученики» — это все случайные реализации деревьев решений, которые объединяются для формирования сильного предсказателя — случайного леса. Все не объяснить. Смотрите видео ниже.

Теперь мы знаем, что такое случайный лес, пришло время реализации кода на Python.

Читать еще:  It программист обучение

Начало работы

Реализация

Метод k-средних

Метод k-средних — это популярный алгоритм неконтролируемой классификации обучения, обычно используемый для решения проблемы кластеризации. K обозначает количество введенных пользователем кластеров. Алгоритм начинается со случайно выбранных точек, а затем оптимизирует кластеры при помощи функций (евклидово расстояние и т. д), чтобы найти наилучшую группировку точек данных. В итоге специалистам по большим данным необходимо выбрать правильное значение K. Вы уже знаете, что для полноты картины нужно посмотреть видео.

Теперь, когда вы знаете чуть больше о кластеризации k-средних, давайте реализуем алгоритм на Python.

Начало работы

Реализация

Визуализация

Метод главных компонент

PCA (Principal Component Analysis) — алгоритм сокращения размерности, который может быть очень полезен для аналитиков. Главное — это то, что данный алгоритм может значительно уменьшить размерность данных при работе с сотнями или даже тысячами различных функций. Данный алгоритм не контролируется, но пользователь должен анализировать результаты и следить за тем, чтобы сохранялось 95% или около этой цифры первоначального набора данных. Не забудьте про видео, ведь оно расскажет намного больше об этом интересном алгоритме.

Реализация на Python.

Начало работы

Реализация

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

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

Почему Python используется для машинного обучения?

Скорее всего, вы знаете, что Python — это самый популярный высокоуровневый язык программирования с динамической семантикой. Он довольно прост для работы и чтения: его использование снижает стоимость разработки и обслуживания программ.

Python считается самым простым языком программирования — именно поэтому он самый распространенный. Посмотрите на график ниже. Он предсказывает, какие языки будут использоваться чаще всего к 2020 году:

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

Почему Python так часто используется в машинном обучении?

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

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

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

Согласно исследованию Hackerrank Stat 2018, «среди работодателей самым востребованным языком программирования является JavaScript, однако среди разработчиков наибольшую любовь завоевал Python, о чем говорит наше исследование Love-Hate index».

Большой выбор библиотек и фреймворков

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

Давайте обсудим, какие именно библиотеки и фреймворки Python используются в машинном обучении. В научных расчетах используется Numpy, в продвинутых вычислениях — SciPy, в извлечении и анализе данных — SciKit-Learn. Эти библиотеки работают в таких фреймворках, как TensorFlow, CNTK и Apache Spark.

Существует фреймворк для Python, разработанный специально для машинного обучения — это PyTorch.

Понятность

Python — самый высокоуровневый и понятный язык, с которым удобно работать. Благодаря его лаконичности и удобству чтения он хорошо подходит для обучения разработке ПО.

Кроме того, Python хорошо подходит для машинного обучения, потому что сами алгоритмы машинного обучения сложны для понимания. При работе с Python разработчику не нужно уделять много внимания непосредственно написанию кода: все внимание он может сосредоточить на решении более сложных задач, связанных с машинным обучением.

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

Обширная поддержка

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

Гибкость

Следующее преимущество Python в машинном обучении состоит в его гибкости: например, у разработчика есть выбор между объектно-ориентированным подходом и скриптами. Python помогает объединять различные типы данных. Более того, Python особенно удобен для тех разработчиков, которые большую часть кода пишут с помощью IDE.

Популярность

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

Заключение

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

Библиотеки Python, необходимые для машинного обучения

Перевод статьи Шуби Астаны «Essential libraries for Machine Learning in Python».

Разработчики, которым в их работе нужно применять приемы статистики или анализа данных, часто выбирают Python в качестве своего языка. Также он используется учеными науки о данных – при интеграции их задач с веб-приложениями или производственными средами.

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

Одно из самых больших преимуществ Python – широкий спектр библиотек.

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

Машинное обучение во многом основано на математике. В частности, на математической оптимизации, статистике и теории вероятности. Библиотеки Python помогают исследователям / математикам «заниматься машинным обучением», даже не имея значительных познаний в разработке.

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

Scikit-learn для работы с классическими алгоритмами машинного обучения

Scikit-learn это одна из самых популярных библиотек машинного обучения. Она поддерживает много контролируемых и неконтролируемых алгоритмов обучения. Например, линейные и логистические регрессии, деревья принятия решений, кластеризацию, k-means и т. д.

Читать еще:  Дистанционное обучение картинка

Она создана на основе двух главных библиотек Python – NumPy и SciPy. В Scikit-learn добавлен набор алгоритмов для распространенных задач машинного обучения и добычи данных, включая кластеризацию, регрессию и классификацию. Даже такие задачи как преобразование данных и выбор функций могут быть реализованы с помощью всего нескольких строк.

Для людей, только начинающих работать в сфере машинного обучения, Scikit-learn является более чем достаточным инструментом. Его вполне будет хватать до того времени, как вы начнете реализовывать более сложные алгоритмы.

Tensorflow для глубокого обучения

Если вы занимаетесь машинным обучением, то наверняка испытывали, реализовывали или хотя бы слышали о некоторых формах алгоритма глубокого обучения. Являются ли они необходимыми? Не всегда. Классные ли они, если сделаны правильно? Да!

Касательно Tensorflow любопытно то, что при написании программы на Python можно компилировать и запускать программу как на CPU, так и на GPU. Таким образом для запуска на GPU вам не приходится писать на C++ или на уровне CUDA.

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

Theano – также для глубокого обучения

Theano это еще одна хорошая библиотека Python для алгоритма числового расчета, похожая на NumPy. Она позволяет вам эффективно определять, оптимизировать и вычислять математические выражения, содержащие многомерные массивы.

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

Последний релиз библиотеки Theano вышел в прошлом, 2017 году. Это версия 1.0.0 со множеством новых функций, изменениями интерфейса и прочими улучшениями.

Pandas для извлечения и подготовки данных

Pandas это очень популярная библиотека, предоставляющая высокоуровневые структуры данных, простые в использовании и интуитивно понятные.

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

Pandas может с легкостью извлекать данные из различных источников, таких как базы данных SQL, файлы CSV, Excel, JSON, и манипулировать этими данными для осуществления операций с ними.

Matplotlib для визуализации данных

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

Как же извлекать пользу из всех имеющихся у вас данных? Как вдохновлять бизнес-аналитиков и рассказывать им истории, полные «озарений»?

В этом вам поможет Matplotlib. Это стандартная библиотека Python, которую используют для создания графиков все люди, занимающиеся наукой о данных. Она достаточно низкоуровневая, а значит, требует больше команд для генерации хорошо выглядящих графиков и фигур, чем более продвинутые библиотеки.

С другой стороны, она гибкая. Оперируя достаточным количеством команд, вы сможете создать практически любой график. Вы можете строить разнообразные диаграммы, от гистограмм и диаграмм рассеяния до графиков с не-декартовыми координатами.

Эта библиотека поддерживает GUI-бэкенд во всех операционных системах, а также может экспортировать графики в распространенных форматах (PDF, SVG, JPG, PNG, BMP, GIF).

Seaborn – еще одна библиотека для визуализации данных

Seaborn это популярная библиотека визуализации, которая строит графики на основе Matplotlib. Это библиотека более высокого уровня, а значит, с ее помощью проще генерировать определенные виды графиков, в том числе тепловые карты, временные ряды и скрипичные графики.

Заключение

Это коллекция самых важных библиотек Python для машинного обучения. Если вы планируете работать с Python и/или в сфере науки о данных, стоит обратить на них внимание и познакомиться с ними поближе.

Если считаете, что в этом списке должны быть и другие библиотеки – поделитесь в комментариях!

15 книг по машинному обучению для начинающих

Data Science — оверхайповое направление IT. Мы сделали подборку книг по Machine Learning для тех, кто хочет разобраться, что да как.

IT стали толчком развития новых профессиональных областей: Data Mining, машинного обучения (Machine Learning) и других. Чтобы погрузиться в тему, читайте книги из нашей подборки.

Книги по машинному обучению на русском

Наталья Березовская

Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».

Владимир Вьюгин.
«Математические основы машинного обучения и прогнозирования»

О чем

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

Педро Домингос.
«Верховный алгоритм»

О чем

Книга, благодаря которой даже ничего не смыслящие в математике и статистике люди поймут, что такое алгоритмы машинного обучения и каково их применение в жизни. Профессор Педро Домингос рассказывает о пяти основных школах Machine Learning и о том, как они используют идеи из различных областей научного знания — нейробиологии, физики, статистики, биологии, — чтобы помогать людям решать сложные задачи и упрощать рутину с помощью алгоритмов.

Хенрик Бринк, Джозеф Ричардс, Марк Феверолф.
«Машинное обучение»

О чем

Эта книга 2017 года издания доступно рассказывает о Machine Learning — для тех, кто ничего не слышал об этих технологиях. В ней нет заумной статистики, математики или углубленного и подробного объяснения, как использовать тот или иной алгоритм. Авторы с легкостью объясняют, что такое машинное обучение и как его применять в повседневной жизни. Примеры в книге приводятся на языке программирования Python, который используется в том числе и в этой сфере.

Бастиан Шарден, Лука Массарон, Альберто Боскетти.
«Крупномасштабное машинное обучение вместе с Python»

О чем

Еще одна отличная книга для начинающих свой путь в программировании и анализе больших данных. Авторы утверждают, что благодаря ей читатель научится самостоятельно строить модели машинного обучения и развертывать крупномасштабные приложения для прогнозирования. В книге рассказывается о том, какие алгоритмы входят в семейство масштабируемых, что они из себя представляют и как с их помощью обрабатывать большие файлы. Также вы узнаете, что такое вычислительная парадигма MapReduce и как работать с машинными алгоритмами на платформах Hadoop и Spark на языке Python.

Читать еще:  Машинное обучение форекс

Себастьян Рашка.
«Python и машинное обучение»

О чем

Книга для новичков, осваивающих Python и машинное обучение. Издание содержит подробные мануалы даже по таким нюансам, как установка специализированного приложения Jupyter Notebook.

В книге рассматриваются основы Machine Learning, возможности самых мощных библиотек Python для анализа данных и дается ответ на вопрос, почему этот язык — один из лидеров в Data Science.

Георгий Кухарев, Екатерина Каменская, Юрий Матвеев, Надежда Щеголева.
«Методы обработки и распознавания изображений лиц в задачах биометрии»

О чем

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

Петер Флах.
«Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных»

О чем

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

Python. Машинное обучение.

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

И попробуем загнать в модель машинного обучения окружения точек, точнее, цвета тех точек, которые находятся вокруг данной точки. Напомню, что цвет точки – это числа от 0 до 255, для каждой составляющих RGB (Red, Blue, Green).

Давайте изобразим это графически:

В центре колец из циферок – искомая точка, а точки, ее окружающие, подаются на вход модели машинного обучения. Если размер скользящего окна (вот этого квадратика из циферок) равен 5, то входной элемент состоит из 24 точек (сама эта точке в него не входит). Соответственно, на вход подается 72 числа. На выходе – одно число, это составляющая R, G или B анализируемой точки. Соответственно, нам потребуется три модели, для каждого из цветов RGB, которые мы будет обучать и использовать отдельно.

Для проведения данного эксперимента нам понадобятся следующие знания:

  • Работа с картинками (библиотека PIL): Работа с изображениями
  • Работа с таблицами данных (Pandas): Анализ данных. PANDAS
  • Машинное обучение (об этом будет рассказано в рамках данного урока).

Для начала создадим экспериментальную программу, которая предскажет красную составляющую цвета точки. В качестве обучающей выборки используем несколько рандомных точек, в качестве тестовой – другие несколько рандомных точек. В качестве модели машинного обучения был выбран случайный лес (RandomForestClassifier). Итак, вот программа на Python:

Обучающая выборка 984

Ср. ошибка: 0.02032520325203252

Тестовая выборка 993

Ср. ошибка: 17.300100704934543

Как видим, на обучающей выборке модель сработала идеально, среднее отклонение почти нуль. На тестовой есть небольшая ошибка. Значение абсолютное, в данном примере оно равно 17 (у вас может получиться другое число, так как данные рандомые, да и сам алгоритм машинного обучения тоже завязан на рандоме, обычно получается от 15 до 20). Много это или мало? Давайте посмотрим.

Вот у нас цвет с красной составляющей 100, остальные по нулям:

Как видим, разница едва заметна.

Но это среднее значения. Где-то может быть отклонение больше 17, а где-то меньше. Более точную картинку даст среднее в купе со среднеквадратичным отклонением, но мы сейчас не будет его считать, если интересно – пусть это будет вашим домашним заданием. А мы сделаем вот что: попробуем загнать на обученные модели всю картинку и посмотрим, какая картинка получиться на выходе.

Для этого воспользуемся следующей программой на Python:

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

Теперь посмотрим на результат:

Как видим, картинка в целом сохранилась, хотя и в искаженном виде. Почему она в черной рамке? Потому что мы использовали скользящее окно, и те точки (крайние), которые в него не попали, оказались черные. Как это исправить? Нужно дополнить исходную картинку рамкой, и обрабатывать уже дополненную картинку (шире и выше на эту рамку). Самый простой, но не очень хороший способ – просто тупо добавить по краям черные точки. Более лучший способ в качестве рамки добавить зеркальное отражение картинки. Если хотите потренироваться – пусть это будет вашим домашним заданием.

Как это можно использовать? Например, у нас есть испорченная фотография (с точками, царапинами и прочими артефактами). Используя алгоритм машинного обучения, мы можем попробовать исправить ее. Как? Берем похожую картинку. Обучаем на ней модель (таким же образом, как мы делали это сейчас). А потом дефектные пиксели заменим на нормальные. Нормальные пиксели нам подскажет модель. Для поиска дефектных пикселей мы сделаем другую модель.

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

Ссылка на основную публикацию
Adblock
detector