Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Вам стоит использовать Scala в машинном обучении
Search
Yuriy Artamonov
June 08, 2019
Programming
0
93
Вам стоит использовать Scala в машинном обучении
Yuriy Artamonov
June 08, 2019
Tweet
Share
More Decks by Yuriy Artamonov
See All by Yuriy Artamonov
Survival Tips on Project Reactor and Spring WebFlux
jreznot
0
13
Intellij IDEA Plugins Crash Course
jreznot
0
17
How IntelliJ IDEA Performance Improved: Past, Present, and Future
jreznot
0
12
Look ma - No Indexing!
jreznot
0
14
Как улучшить жизнь команды в IDE и с чего начать
jreznot
0
140
Modern UI Test Automation with Selenium Libraries
jreznot
2
3k
IDE в помощь специалисту по тестированию
jreznot
0
63
Мигрируй это!
jreznot
0
79
How We Support New Technologies, Languages, and Frameworks in IntelliJ IDEA
jreznot
0
240
Other Decks in Programming
See All in Programming
ASP.NET Core の OpenAPIサポート
h455h1
0
120
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
Package Traits
ikesyo
1
210
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
2025.01.17_Sansan × DMM.swift
riofujimon
2
560
各クラウドサービスにおける.NETの対応と見解
ymd65536
0
250
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4.2k
php-conference-japan-2024
tasuku43
0
430
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
200
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
Docker and Python
trallard
43
3.2k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Faster Mobile Websites
deanohume
305
30k
Practical Orchestrator
shlominoach
186
10k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Adopting Sorbet at Scale
ufuk
74
9.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Scaling GitHub
holman
459
140k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Transcript
Вам стоит использовать Scala для ML! Юрий Артамонов Haulmont
Наш план 1. Что за язык 2. Где тут код
писать 3. Какие есть библиотеки 2 И где то там про Machine Learning ещё будет
Не этот мужик 3
Язык программирования акроним от Scalable Language 4
История развития • Дизайн языка разработан в 2001 (EPFL) •
Автор - Martin Odersky • 2006 - Scala 2.0 • 2011 - Typesafe Inc. (сейчас Lightbend Inc.) 5
Кто пользуется этим всем 6
Лучше всего подходит для • Big Data • Data Science
• Web Applications • Distributed Systems • Concurrency and Parallelism • Scientific Computations: NLP, Numerical Computing, Data Visualization 7
Сильная статическая типизация 8 Слабая Сильная Динамическая Статическая
Multiplatform • JVM • JavaScript - Scala.js • Native -
Scala Native (LLVM based) 9
Functional + Object Oriented 1. Высокоуровневый язык сочетающий OOP и
FP 2. Краткий синтаксис без мусора 3. Статическая типизация и вывод типов 10
Type Inference • Компилятор выводит тип переменных • Тип фиксируется
первым присваиванием • IDE это всё понимает! 11
Разные штуки • Case Classes • Type Aliases • Implicit
Conversions • Extension Methods 12
Pattern Matching • Сравнение по образцу - switch на стероидах
• Поддерживает деконструкцию • Полезно вместе с case classes 13
Concurrency & Asynchronous • Future & Promise • Async /
Await • Akka ! • java.util.concurrent 14
Scalaz / Tagless Final / ZIO / etc • Scalaz
- для пуристов • Неразмеченные Конечные Интепретаторы • ZIO - хитрый и асинхронный IO Это не наш случай! 15 Читать нечитаемый код Писать нечитаемый код
Машинное обучение обширный подраздел искусственного интеллекта, изучающий методы построения алгоритмов,
способных обучаться 16
Задачи • классификация • кластеризация • регрессия • восстановление плотности
распределения • ... 17
18
Инструменты Ну не на листочке же матрицы умножать 19
Чернющий REPL > sbt console 20
VS Code and Language Server • Scala syntax • sbt
plugin • autocompletion Рефакторинг не поддерживается :( 21
IntelliJ IDEA + Scala plugin • sbt / Gradle /
Maven • Syntax highlighting • Inspections • Refactoring ! • Worksheets 22
IntelliJ IDEA Worksheets • Интерактивный REPL • Можно править код
• Интегрирован в IDE ! • Доступны все библиотеки и код проекта 23
Интерактивные консоли • Apache Zeppelin • Scala Notebook • Spark
Notebook • Databricks 24
Библиотеки Как нанести непоправимую пользу окружающим 25
Akka • Actor model • Concurrency • Parallel computations •
Distributed systems 26
Breeze NLP • Breeze - linear algebra, numerical computing and
optimization • Epic - structured text processor • Puck - GPU powered parser 27
ND4J • ND Arrays - multidimensional arrays in memory with
flat layout • Off-heap and memory effective • Native libraries interop 28
Apache Spark • In-Memory • Big Data Processing • Distributed
Computations • DataFrames • Spark SQL 29
Spark ML Run ML pipelines on Spark Check ML guides:
https://spark.apache.org/docs/1.2.2/ml-guide.html 30
Apache PredictionIO • Machine Learning Server • Batch Processing •
Real-time • Predefined Models: Clustering, Recommenders, Regression, NLP, ... 31
Deeplearning4j • Neural networks - tons of nertworks • Deep
learning • Image / Data processing • Optimized performance (OpenBLAS) • GPU supported 32
Smile Statistical Machine Intelligence and Learning Engine • Preprocessing •
Feature selection • Supervised learning • Unsupervised learning • Reinforcement learning 33
Визуализация данных • Breeze-viz • Vegas • Plotly 34
Vegas 35
Задачка #1 Классификация - Smile Пример: K-nearest neighbours 36
Задачка #2 - Cloud Load Balancing Регрессия - Deeplearning4j 37
Scala vs Python • Статическая типизация vs динамическая • Сложность
vs простота • Продакшен vs прототипы 38
Scala 3 coming soon... • Intersection & Union types •
Enumerations • Null safety • Opaque types ETA 2020 39
Вместо заключения • https://www.scala-exercises.org/ • Functional Programming in Scala (Coursera)
• Big Data Analysis with Scala and Spark (Coursera) • Programming Reactive Systems (Edx) 40