CodeFest 2019. Роман Неволин (Revolut) — Machine Learning via .NET

16b6c87229eaf58768d25ed7b2bbbf52?s=47 CodeFest
April 05, 2019

CodeFest 2019. Роман Неволин (Revolut) — Machine Learning via .NET

— Что такое в целом ML — что изменилось за последние несколько лет и краткое объяснение общих терминов.
— Облачные и локальные варианты работы с ML — различия, преимущества и недостатки.
— Облачные решения — какие есть, в чем разница, демо простых задач решаемых с помощью cognitive services, обучаемые облачные сервисы (custom vision, etc).
— Простые задачи вне облака — краткий обзор Accord.NET, демо.
— Локальные решения — обзор CNTK, TensorFlow, ML.NET. В чём различия, что и для каких задач применять, краткое демо каждого из сервисов.
— Как устроен ML.NET — небольшой разбор исходников, пара слов о будущем проекта.
— Общий обзор — что мы в итоге имеем, какие решения лучше в конкретных ситуациях.

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

April 05, 2019
Tweet

Transcript

  1. Machine Learning via .NET Roman Nevolin, Revolut

  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. Но сегодня немного не об этом

  10. None
  11. Суровая реальность • Задача программистов - решать проблемы бизнеса средствами

    программирования
  12. Суровая реальность • Задача программистов - решать проблемы бизнеса средствами

    программирования • Временами проблемы бизнеса решает только ML
  13. Суровая реальность • Задача программистов - решать проблемы бизнеса средствами

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

  15. Суровая реальность • … нам нужно распознавать речь • …

    нам нужно понять, довольны ли пользователи
  16. Суровая реальность • … нам нужно распознавать речь • …

    нам нужно понять, довольны ли пользователи • … нам нужно выделить из текста интересные факты
  17. Суровая реальность • … нам нужно распознавать речь • …

    нам нужно понять, довольны ли пользователи • … нам нужно выделить из текста интересные факты • … нам нужно проверить, не забыл ли хирург инструмент в пациенте
  18. None
  19. None
  20. None
  21. None
  22. None
  23. И все это не для вас, господа .NET разработчики!

  24. None
  25. None
  26. None
  27. None
  28. Промежуточные итоги • На дотнете есть кое-какие инструменты для решения

    задач ML
  29. Промежуточные итоги • На дотнете есть кое-какие инструменты для решения

    задач ML • Временами бизнес подкидывает задачи, для которых требуется пообучать машины
  30. Промежуточные итоги • На дотнете есть кое-какие инструменты для решения

    задач ML • Временами бизнес подкидывает задачи, для которых требуется пообучать машины • … представим, что у нас есть задача и нет ничего, кроме дотнета
  31. None
  32. Демо: быстро учим наш продукт узнавать картинки

  33. None
  34. Но… • … но облако хочет от нас денег, всегда

    и много
  35. Но… • … но облако хочет от нас денег, всегда

    и много • … но облако - это не всегда надежно
  36. Но… • … но облако хочет от нас денег, всегда

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

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

    и с нейросетями не разбираться, и машинлернинг поюзать…
  39. None
  40. None
  41. https://github.com/migueldeicaza/TensorFlowSharp

  42. https://github.com/tensorflow/models

  43. Нас обманули! 
 Где кровь, кишки и нейросети?

  44. None
  45. None
  46. https://github.com/SciSharp/TensorFlow.NET

  47. А что это вообще такое, машинное обучение?

  48. None
  49. https://vas3k.ru/blog/machine_learning/

  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. Демо: используем простые алгоритмы

  58. None
  59. None
  60. None
  61. None
  62. None
  63. Демо: CNTK во славу распознавания

  64. https://github.com/dotnet/machinelearning/blob/master/ROADMAP.md

  65. Итого: • На .NET можно делать машинное обучение. И вполне-таки

    прилично; • Решать проблемы ML можно с разным уровнем погружения, в зависимости от задач и возможностей; • ML - это сложно, но от этой сложности можно абстрагироваться.
  66. @nevoroman Роман Неволин Software Engineer Revolut Вопросы? nevoroman nevoroman@gmail.com