Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Вам стоит использовать Scala в машинном обучении

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Вам стоит использовать Scala в машинном обучении

Yuriy Artamonov

June 08, 2019

Transcript

40 slides
  1. Наш план 1. Что за язык 2. Где тут код

    писать 3. Какие есть библиотеки 2 И где то там про Machine Learning ещё будет
  2. История развития • Дизайн языка разработан в 2001 (EPFL) •

    Автор - Martin Odersky • 2006 - Scala 2.0 • 2011 - Typesafe Inc. (сейчас Lightbend Inc.) 5
  3. Лучше всего подходит для • Big Data • Data Science

    • Web Applications • Distributed Systems • Concurrency and Parallelism • Scientific Computations: NLP, Numerical Computing, Data Visualization 7
  4. Functional + Object Oriented 1. Высокоуровневый язык сочетающий OOP и

    FP 2. Краткий синтаксис без мусора 3. Статическая типизация и вывод типов 10
  5. Type Inference • Компилятор выводит тип переменных • Тип фиксируется

    первым присваиванием • IDE это всё понимает! 11
  6. Pattern Matching • Сравнение по образцу - switch на стероидах

    • Поддерживает деконструкцию • Полезно вместе с case classes 13
  7. Concurrency & Asynchronous • Future & Promise • Async /

    Await • Akka ! • java.util.concurrent 14
  8. Scalaz / Tagless Final / ZIO / etc • Scalaz

    - для пуристов • Неразмеченные Конечные Интепретаторы • ZIO - хитрый и асинхронный IO Это не наш случай! 15 Читать нечитаемый код Писать нечитаемый код
  9. 18

  10. VS Code and Language Server • Scala syntax • sbt

    plugin • autocompletion Рефакторинг не поддерживается :( 21
  11. IntelliJ IDEA + Scala plugin • sbt / Gradle /

    Maven • Syntax highlighting • Inspections • Refactoring ! • Worksheets 22
  12. IntelliJ IDEA Worksheets • Интерактивный REPL • Можно править код

    • Интегрирован в IDE ! • Доступны все библиотеки и код проекта 23
  13. Breeze NLP • Breeze - linear algebra, numerical computing and

    optimization • Epic - structured text processor • Puck - GPU powered parser 27
  14. ND4J • ND Arrays - multidimensional arrays in memory with

    flat layout • Off-heap and memory effective • Native libraries interop 28
  15. Apache Spark • In-Memory • Big Data Processing • Distributed

    Computations • DataFrames • Spark SQL 29
  16. Spark ML Run ML pipelines on Spark Check ML guides:

    https://spark.apache.org/docs/1.2.2/ml-guide.html 30
  17. Apache PredictionIO • Machine Learning Server • Batch Processing •

    Real-time • Predefined Models: Clustering, Recommenders, Regression, NLP, ... 31
  18. Deeplearning4j • Neural networks - tons of nertworks • Deep

    learning • Image / Data processing • Optimized performance (OpenBLAS) • GPU supported 32
  19. Smile Statistical Machine Intelligence and Learning Engine • Preprocessing •

    Feature selection • Supervised learning • Unsupervised learning • Reinforcement learning 33
  20. Scala 3 coming soon... • Intersection & Union types •

    Enumerations • Null safety • Opaque types ETA 2020 39
  21. Вместо заключения • https://www.scala-exercises.org/ • Functional Programming in Scala (Coursera)

    • Big Data Analysis with Scala and Spark (Coursera) • Programming Reactive Systems (Edx) 40

More Decks by Yuriy Artamonov

Other Decks in Programming