Тут будут некоторые рассуждения об особенностях применения нейросетей в машинном обучении. Просьба указать на неточности.
- Альтернативы. Алгоритмы с обучением в машинном зрении применялись давно. В основном использовался «метод опорных векторов» (SVM) и «К ближайших соседей» (KNN, где NN не имеет никакого отношения к нейросетям). По скорости обучения и требовательности к ресурсам они были намного лучше свёрточных нейросетей из популярных фрейворков. По точности были где-то наравне с нейросетями, а иногда и лучше. Основной их недостаток — необходимость предобработки изображений, выделение признаков «ручками».
Правка. Критерием выбора нейросети может быть Inductive bias (априорные знания о природе данных, которые человек некоторым образом вкладывает в модель машинного обучения), а также размер датасета и число категорий сортировки. При малом датасете и числе категорий классические решения могут дать лучшую точность. При большом датасете нейросети обычно выигрывают.
- Эпохи. При обучении нейросетей используются две выборки с фото — тренировочная и тестовая. На тренировочной сеть обучается, а тестовая используется для оценки полученной точности. В каждой эпохе мы подгоняем коэффициенты так, чтобы результаты сортировки тестовой выборки становились лучше. Соответственно, на определённом этапе мы получаем так называемое «переобучение», когда мы слишком сильно подогнали решение под тестовую выборку. Номер эпохи, в которой недообучение переходит в переобучение сказать трудно. Поэтому если датасаентист берёт точность сортировки в, например, сотой эпохе и говорит, что это точность у полученной модели, то он лукавит или заблуждается. Данная точность может быть результатом переобучения. Вопрос в том, может ли быть переобучение уже во второй эпохе.
Правка: влияние тестовой выборки некорректно называть переобучением. Более точно будет говорить об «утечке данных из валидационной части».
- Аугментация данных. Для улучшения точности сортировки производят деформации изображений датасета. Например, мы можем повернуть или растянуть изображения. При удачной аугментации будет прирост точности. С другой стороны, работоспособность такого приёма может говорить о несовершенстве нейросетей.
Правка: аугментация помогает внедрить inductive bias в нейросеть.
- Кропы. Обычно для обучения нейросетей используются квадратные изображения заданного размера (кропы), в котором объект размещается оптимально. Если объект вылезает из кропа или занимает слишком мало места, то точность будет понижаться. Вторая проблема — выделение кропа из фона. При использовании альтернативных методов обучения мы можем не использовать квадратных кроп с жёстким размером. Мы можем даже использовать непрямоугольные изображения, если удалим фон. Нейросеть же «ест» объекты прямо с фоном из-за чего могут быть внесены искажения.
Правка: для выделения кропа датасаентистам может помочь YOLO.
- Распознавание в 3Д. Если мы сделали снимки объекта с разных сторон, то при использовании своего алгоритма мы можем воссоздать 3Д-модель (облако точек) и работать с ней. При использовании нейросетей из фреймворков мы можем оценить фото каждого ракурса отдельно как 2Д, а потом как-то усреднить. Очевидно, что такой подход не идеален. При использовании же трёхмерного облака точек нейросети будут обучаться вечно.

