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

Вопросы :

  1. Что такое машинное обучение?

-›Идея машинного обучения основана на поведении человека. Машинное обучение — это разновидность ИИ, которая имитирует поведение человека для принятия правильных решений. Машинное обучение расширяет возможности компьютеров думать/вести себя/принимать решения как люди. Это исследование компьютерных алгоритмов, которое помогает компьютерным программам улучшать себя.

2. Расскажите о контролируемом, неконтролируемом обучении и обучении с подкреплением.

-› Обучение с учителем. При обучении с учителем машина обучается под некоторым руководством/контролем. Мы обучаем машины, используя некоторые данные, которые помечены. Вот как модель принимает некоторые решения на основе прошлого опыта/размеченных данных. Таким образом, для обучения с учителем мы предоставляем входные данные вместе с выходными, чтобы машина узнала, как будет выглядеть идеальный результат. Обучение с учителем можно разделить на проблемы классификации и регрессии.

  • Классификация: Алгоритм классификации — это когда выходной переменной является такая категория, как «Красный» или «Синий», «Болезнь» или «Нет болезни». Например Определите, является ли данное животное кошкой или собакой.
  • Регрессия: проблема регрессии возникает, когда выходная переменная представляет собой реальное значение, такое как вес или доллары. Это помогает найти корреляцию между переменными и позволяет нам прогнозировать непрерывные выходные переменные. Например Предсказать цену дома на основе таких характеристик, как размер, цена и т. д.

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

  • Кластеризация: это проблема, когда вы хотите обнаружить неотъемлемые группы данных, такие как группировка клиентов по покупательскому поведению.
  • Ассоциация: это алгоритм, который проверяет зависимость элемента от другого элемента. Например Клиенты, которые уже купили хлеб, могут купить и варенье.

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

3. Каковы уровни CNN?

-› CNN: это искусственная нейронная сеть, которая широко известна тем, что анализирует изображения и решает задачи классификации. У него есть специализация, которая может обнаруживать различные шаблоны, которые помогают CNN анализировать изображения. Он состоит из трех слоев: i) входной слой ii) скрытый слой iii) выходной слой. Первый слой называется входным слоем, а последний слой называется выходным слоем. И любой слой между этими двумя слоями называется скрытым слоем.

Подробная информация о 4 слоях свертки:

  • Сверточный слой: этот слой является первым слоем, который используется для извлечения различных функций из входных изображений. В этом слое выполняется математическая операция свертки между входным изображением и фильтром определенного размера. При перемещении фильтра по входному изображению скалярное произведение берется между фильтром и частями входного изображения относительно размера фильтра.
  • Слой пула: в большинстве случаев за сверточным слоем следует слой пула. Основная цель этого слоя — уменьшить размер свернутой карты объектов для снижения вычислительных затрат. Это достигается за счет уменьшения связей между слоями и независимой работы с каждой картой объектов. В зависимости от используемого метода существует несколько типов операций объединения. Максимальное объединение, суммирование и среднее объединение — это лишь некоторые из типов операций объединения.
  • Слой FC: Слой Fully Connected (FC) состоит из весов и смещений вместе с нейронами и используется для соединения нейронов между двумя разными слоями. Эти слои обычно размещаются перед выходным слоем и образуют несколько последних слоев архитектуры CNN. FC — это слой, где обычно происходят математические операции.
  • Функции активации: решает, какая информация модели должна передаваться в прямом направлении, а какая не должна передаваться в конец сети. Это добавляет нелинейность в сеть. Наиболее широко используемыми функциями активации являются ReLU, sigmoid и softmax.

4. Какие алгоритмы используются в машинном обучении? Объясните 2.

-› Деревья решений: это контролируемый алгоритм обучения. Его можно использовать в классификации вместе с регрессией. Для классификатора это древовидный классификатор. В этой древовидной структуре узел является наименьшей фундаментальной единицей. Корневой узел представляет всю совокупность/данные для работы. Затем условие проверяется, и данные разбиваются в соответствии с условиями. Вот как выполняется разделение данных на основе различных условий, а затем конечные узлы представляют классы для классификации.

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

5. Что такое анализ основных компонентов (PCA)?

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

6. Что такое дисперсия и предвзятость в машинном обучении?

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

7. Что такое глубокое обучение?

-› Глубокое обучение — это подмножество машинного обучения, которое является подмножеством искусственного интеллекта. Глубокое обучение имеет больше скрытых слоев. Чем больше слоев между входным и выходным слоями, тем глубже сеть. Увеличение глубины увеличивает масштаб модели. Модели с дополнительным количеством скрытых слоев могут быть более эффективными в вычислительном отношении, чем обучение модели с одним слоем.

8. Сравните алгоритмы k-средних и KNN.

-›1. K-NN — это машинное обучение с учителем, а K-means — машинное обучение без учителя.
2. K-NN — это алгоритм классификационного или регрессионного машинного обучения, а K означает — алгоритм кластерного машинного обучения.
3. K -NN — ленивый ученик, а K-Means — нетерпеливый ученик. Нетерпеливый ученик на этапе обучения.
4. K-NN работает намного лучше, если все данные имеют одинаковую шкалу, но это не так для K-средних.

9. Что такое матрица путаницы?

-› Матрица путаницы или матрица ошибок часто используется для описания и обобщения производительности модели. Он специально используется для моделей классификации. Он вычисляет точность/производительность вашего классификатора, сравнивая ваши фактические результаты и прогнозируемые результаты. Он имеет два параметра: i) Фактические параметры ii) Прогнозируемые параметры
Рассмотрим пример 1000 пациентов, сдавших тест на covid-19.

  • Истинно положительные результаты (TP):это случаи, в которых мы предсказали положительное решение для 560 пациентов, и у них действительно есть заболевание.
  • Истинно отрицательные результаты (TN). Мы прогнозировали отсутствие для 330 пациентов, и у них не было заболевания.
  • Ложноположительные результаты (FP). Мы предсказали положительный результат для 60 пациентов, но на самом деле у них нет заболевания. (также известная как «ошибка типа I»)
  • Ложноотрицательные результаты (FN): мы прогнозировали отсутствие для 50 пациентов, но у них действительно есть заболевание. (также известная как «ошибка типа II»)

Как мы можем оценить производительность модели? Мы можем легко достичь этого с помощью следующих терминов:

  • Точность = (TP + TN)/(TP + TN + FP + FN)
  • Частота ошибок = (FP + FN)/(TP + TN + FP + FN)
  • Точность = TP/(TP + FP)
  • Отзыв = TP/(TP + FN)

10. Каковы концепции переобучения и недообучения? Как мы можем их преодолеть?

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

11. Как вы обрабатываете отсутствующие или поврежденные данные в наборе данных?

-› В Pandas есть два очень полезных метода: IsNull() и dropna(), которые помогут вам найти столбцы данных с отсутствующими или поврежденными данными и удалить эти значения. Если вы хотите заполнить недопустимые значения значением-заполнителем (например, 0), вы можете использовать метод fillna().

12. Что такое хеш-таблица?

-›Хеш-таблица — это тип структуры данных, в которой хранятся пары ключ-значение. Ключ отправляется хэш-функции, которая выполняет над ним арифметические операции. Результат (обычно называемый хеш-значением или хэшем) представляет собой индекс пары ключ-значение в хэш-таблице. Базовая хеш-таблица состоит из двух частей:

  1. Хеш-функция.Хеш-функция определяет индекс нашей пары ключ-значение. Выбор эффективной хэш-функции является важной частью создания хорошей хэш-таблицы. Вы всегда должны убедиться, что это односторонняя функция, то есть ключ нельзя получить из хэша. Еще одним свойством хорошей хеш-функции является то, что она не создает один и тот же хэш для разных ключей.
  2. Массив. Массив содержит все записи пар "ключ-значение" в таблице. Размер массива должен быть установлен в соответствии с ожидаемым объемом данных.

13. Расскажите о первичных и внешних ключах в SQL.

-› Первичный ключ – это столбец или набор столбцов, которые однозначно идентифицируют каждую строку в таблице. Таблица может иметь только один первичный ключ без повторяющихся или нулевых значений.

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

14. Что такое Pytorch и FastAI?

-› PyTorch — это библиотека для программ Python, упрощающая создание проектов глубокого обучения. PyTorch делает упор на гибкость и позволяет выражать модели глубокого обучения в идиоматическом Python. Проще говоря, подумайте о Numpy, но с сильным ускорением GPU. PyTorch поддерживает графы динамических вычислений, которые позволяют изменять поведение сети на лету, в отличие от статических графов, которые используются в таких средах, как Tensorflow.

Fast.ai — это библиотека глубокого обучения, созданная на основе Pytorch, одной из самых популярных сред глубокого обучения. Fast.ai использует передовые методы и подходы к глубокому обучению для получения самых современных результатов. Fast.ai был основан Джереми Ховардом и Рэйчел Томас, чтобы предоставить практикующим специалистам по глубокому обучению быстрый и простой способ достижения современного состояния. the-art приводит к стандартным контролируемым областям глубокого обучения, то есть Vision, Text, Tabular и Collaborative Filtering.

15. Как импортировать изображение с помощью таких библиотек, как OpenCV, Pillow и Numpy?

-›Для подушки: img = Image.open(‘img1.jpg’)

Для OpenCV: img = cv2.imread («img1.png»)

Для numpy: im = np.array(Image.open(‘img1.jpg’))

16. Какие общие библиотеки используются в глубоком обучении?

-› OpenCV

Матплотлиб

Нампи

Сципи

Scikit-learn

ТензорФлоу

Керас

ПиТорч

Панды

17. Что такое бинарная форма изображений?

-› Бинарное изображение может иметь только два значения, то есть 0 и 1. Это подмножество сегментации изображения. Это процесс создания бинарного изображения на основе порогового значения интенсивности пикселей исходного изображения. Этот метод эффективен, когда объект имеет более высокую интенсивность цвета, чем фон. Вы можете оставить пороговое значение постоянным или динамическим в зависимости от ваших требований. На основе пороговых значений методы определения порога подразделяются на три типа: i) простое определение порога, ii) адаптивное определение порога и iii) определение порога Оцу.

18. Какие алгоритмы обнаружения линий используются?

-› При обработке изображений обнаружение линий — это алгоритм, который берет набор из n краевых точек и находит все линии, на которых лежат эти краевые точки.

  1. Обнаружение краев Canny: это оператор обнаружения краев, который использует многоэтапный алгоритм для обнаружения широкого спектра изображений. Он был разработан Джоном Ф. Канни в 1986 году. Синтаксис этого алгоритма: cv2.canny(img, threshold1, threshold2, L2Gradient=true)
  2. Метод преобразования Хафа: преобразование линии Хафа — это преобразование для обнаружения прямых линий. Чтобы применить преобразование, во-первых, желательна предварительная обработка обнаружения краев. Преобразование Хафа — это метод извлечения признаков, используемый в анализе изображений, компьютерном зрении и цифровой обработке изображений. Классическое преобразование Хафа было связано с идентификацией линий на изображении. Но позже преобразование Хафа было расширено для определения положения произвольных форм, чаще всего кругов и эллипсов.

19. Как вы создали модель OCR?

-› Python-tesseract — это инструмент оптического распознавания символов (OCR) для Python. Он распознает и прочитает текст, встроенный в изображения. Python-tesseract — это оболочка для Google Tesseract-OCR Engine. Кроме того, при использовании в качестве скрипта Python-tesseract будет печатать распознанный текст, а не записывать его в файл.

Для получения дополнительной информации: https://github.com/riya-chougule/Invoice_automation/blob/master/binarization_with_ Different%20_threshold_values.ipynb

20. Что такое сегментация изображения? Укажите его типы.

-› Сегментация изображений — это область искусственного интеллекта и компьютерного зрения. Это процесс, в котором изображение подразделяется на несколько областей или объектов. Сегментация изображения помогает определить границы объектов и извлечь значимую информацию. Он предоставляет различные классы для каждого объекта, присутствующего на изображении. Прежде чем понять изображение и классифицировать изображение по разным классам, нам нужно понять, из чего оно состоит. Вот почему мы используем сегментацию изображений. Сегментация изображения относится к процессу разделения или разделения данного изображения на различные части, называемые сегментами. Мы не можем обрабатывать все изображение одновременно, так как могут быть некоторые области, где изображение не содержит важной информации. Итак, разделив изображение на сегменты/объекты, мы можем использовать важные сегменты для обработки изображения. Сегментация изображения — это процесс разделения цифрового изображения на несколько сегментов (наборов пикселей, также известных как объекты изображения). Цель сегментации состоит в том, чтобы упростить и/или изменить представление изображения во что-то более осмысленное и легко анализируемое. Существует два типа сегментации изображения:

  • Семантическая сегментация: это форма сегментации изображения, которая фокусируется на классификации всех объектов класса как единого экземпляра. Предметы одного класса классифицируются одним цветом. Это классифицирует объекты на изображении и включает набор пикселей в осмысленные классы, которые соответствуют категориям реального мира.
  • Сегментация экземпляров: он идентифицирует каждый экземпляр каждого объекта, представленного на изображении, вместо категоризации каждого пикселя, как при семантической сегментации. Например Вместо того, чтобы классифицировать 5 овец как один экземпляр, он будет идентифицировать каждую отдельную овцу.

21. Что такое Юнет? Почему вы использовали U-net для сегментации изображений?

->

Архитектура U-Net основана на FCN и модифицирована таким образом, чтобы обеспечить лучшую сегментацию в медицинской визуализации. Архитектура U-Net разделена на 3 части:

  • Путь сокращения/понижения дискретизации:

Слой деконволюции с шагом 2

Конкатенация с соответствующей обрезанной картой объектов из пути сокращения

Слой свертки 3x3 + AF (с BN)

Слой свертки 3x3 + AF (с BN)

  • Узкое место: эта часть сети находится между путями сокращения и расширения. Узкое место построено просто из 2-х CL (с BN), с отсевом.
  • Путь расширения/повышения дискретизации: путь расширения также состоит из 4 блоков. Каждый из этих блоков состоит из:

3х3 КЛ+АФ (с БН)

3х3 КЛ+АФ (с БН)

Максимальное объединение 2x2

Я выбрал U-net для своей модели, потому что она построена на FCN (полностью сверточная сеть) и модифицирована таким образом, чтобы обеспечить лучшую сегментацию.

22. Как началось ваше путешествие по машинному обучению?

Мой путь к машинному обучению начался в 2019 году. Я участвовал в конкурсе проектов и плакатов в своем колледже. До 2020 года я продолжал участвовать в технических мероприятиях между колледжами и внутри колледжей и получил несколько рангов, которые меня больше всего мотивировали. Кроме того, участие помогло мне получить 9-месячную стажировку по машинному обучению. Более того, мой проект BE сыграл жизненно важную роль в моей страсти к машинному обучению.

23. Какие проекты вы выполняли?

На сегодняшний день я выполнил 3 проекта по машинному обучению. В первом проекте я создал классификатор объектов CNN, используя Pytorch и FastAI. Я использовал набор данных из 9 категорий, каждая из которых состоит из 20 изображений. В конце концов, он обеспечивает точность 90% при использовании ограниченного набора данных. Для второго проекта я работал над автоматизацией счетов и использовал такие библиотеки, как Numpy, OpenCV, Pillow, Pytesseract, matplotlib и т. д. 3.2 Я использовал несколько отобранных образцов счетов для этого проекта и успешно построил OCR для счетов с точностью 86,37%. Кроме того, в моем третьем проекте я построил модель с помощью U-net и сегментировал изображения с точностью 88%, а также использовал такие библиотеки, как Fastai, Numpy, OpenCV и Pillow.

24. Что вы делаете в первую очередь, когда получаете неорганизованные, но большие данные изображения?

Поскольку у нас есть огромный набор данных, нам нужно иметь представление о наборе данных. Ключом к получению краткого введения в набор данных является EDA (исследовательский анализ данных). Это метод создания описательных и графических сводок набора данных. Это полезный способ изучить ваши данные и понять взаимосвязь между переменными и выявить любые ошибки ввода данных. EDA может предоставить вам такую ​​информацию, как количество файлов, присутствующих в наборе данных, формат файлов, тип изображения, размер файлов изображений и т. д.

25. В определенных ситуациях модель хорошо работает с обучающими данными, но не так хорошо работает с данными, которых она не видела раньше. Что вы об этом думаете?

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

26. Почему вы решили использовать Pytorch вместо TensorFlow для созданного вами классификатора?

PyTorch поддерживает графы динамических вычислений, которые позволяют изменять поведение сети на лету, в отличие от статических графов, которые используются в таких средах, как Tensorflow. Благодаря простоте и динамической структуре графа Pytorch легче отлаживать, чем TensorFlow.

27. Как вы определили скорость обучения для своей модели?

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

28. Какие библиотеки вы использовали для обработки изображений?

Я использовал OpenCV, подушку, numpy, sklearn, scikit Learn, matplotlib, pytesseract и т. д. для различных проектов.

29. Какие платформы вы использовали для проектов машинного обучения?

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