Вивчення ML з Accord.NET

Привіт.

Цікаво трохи розібратися з ML.

Є досвід з C#, вирішив спробувати бібліотеку Accord.NET

В когось є досвід з нею, щоб можна отримати консультацію ?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Дело в том, что МL на C# конечно возможно, но уж больно экзотично. И только, если не в состоянии выучить вместо C# что нибудь более подходящее. Поэтому не думаю, что тут есть мазохисты, использующие именно указанную связку.
Что-бы не было кривотолков — под мазохизмом я понимаю желание изучать нечто новое для себя (т.е. тратить свое время и силы), при этом осознавая, что ни вразумительной помощи, ни консультации, ни перспектив дальнейшего профессионального использования, ни даже вменяемых перспектив развития выбранная технология не имеет.

На текущий момент в контексте net ml(dotnet.microsoft.com/...​hinelearning-ai/ml-dotnet ) одна из наиболее быстро развивающихся составляющих куда судя по всему мс очень сильно вкладывается, двигая дотнет в направлении платформы с высокоуровневым апи соизмеримым по производительности в cpu-bound задачах c unmanaged языками www.codeproject.com/...​D-performance-vs-Intel-IS (таких перспектив ни у python, ни у jvm стека нет, само собой). Скорее всего это в первую очередь контексте azure будет развиваться — но судя по всему продаётся неплохо — на последнем connect очень много рекламировали.

В ML язык программирования играет второстепенную роль, а точнее: обращаться к библиотеке можно из чего душе угодно, а под капотом там обычно C++ и CUDA (если производительность важна).
Так если ТС знает C# и хочет изучить именно ML, начать разбираться с вышеупомянутой библиотекой — вполне разумный подход.

Кстати, мне недавно пришлось изучить (основы) C# - проект, в котором я работаю, написан на нем. Мне хотя и разрешалось использовать то, что посчитаю нужным, но плодить сущности без необходимости (а потом их еще клеить костылями) — зачем?!
А т.к. мне нужны были алгоритмы оптимизации, то взял вот эту библиотеку
www.mathdotnet.com
Саппорта и коммьюнити по ней действительно мало — но если в теме разбираешься, обойдешься и своими силами.

трохи розібратися з ML

 — это оксюморон.
Задача конкретная есть?

P.S.
C Accord.NET не работал, но судя по документации, библиотека весьма обширная — реализованы практически все общеупотребительные модели.

на даний момент цікавить вирішення банальної задачі класифікації. Взяв з кагл датасет з котиками та песиками. хочу спробувати навчити модель щоб визначала на картинці кіт чи собака це. Для навчання планував використовувати Naive Bayes classifier.

моя ціль — розібратися з реалізацією. нехай це буде не дуже точна модель \ реалізація

моя ціль — розібратися з реалізацією

Ну так запрограммируй модель и проходи ее шаг за шагом с дебаггером.
Только вот

трохи розібратися з ML — это оксюморон

 — это я к тому, что не зная лежащей в основе теории, из кода ты ее не вычитаешь (если ты не гений уровня Рамануджана).

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

Так что я бы советовал начать с простейших примеров — вот этих
github.com/...​ework/wiki/Classification
И дебаггером, дебаггером! (и как я уже сказал, с вероятностью 99% увидишь, что без знания релевантной математической теории — дохлый номер).

я проходив курси на edx та prometheus. Планую, ще щось передивится. Мені для розуміння теорії, потрібно хоча би якась практика. тому пробую так

на даний момент цікавить — в який формат потрібно переводити зображення, щоб модель могла їх оцінювати.

Тут я плохой советчик, т.к. с картинками практчески не работал — мой конёк — временнЫе ряды.
Рекомендую, кстати, бегло прочитать вот этот блог-пост
letyourmoneygrow.com/...​r-a-step-by-step-example
В технические детали вдаваться не нужно — основная мораль тут — не зная сути твоих данных, выберешь модель неправильно, и будешь удивляться, почему ни хрена не работает.

Возвращаясь к картинкам — если речь, скажем, о MNIST — то там, насколько я знаю, все относительно просто: все картинки размером 28*28 (всего, значит, 784 входных параметра) и все в серых полутонах.
Оттенков серого там 255, так что в простейшем случае ты можешь считать данные в одномерный массив и поделить на 255 (последнее — с целью нормализации).
При этом сразу очевидно, что одномерный массив — это субоптимально, ибо на картинках между соседними пикселями обычно имеется зависимость (и именно ее-то и пытаются обнаружить те же сверточные сети).
А касательно цветных фоток кошечек-собачек — там тебе придется читать три слоя (RGB) и все такое. А если они еще разного размера... В общем, еще раз — для первоначальной практики это — слишком сложная задача с риском застрять на подступах.

Подписаться на комментарии