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
85
Вам стоит использовать 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
8
Intellij IDEA Plugins Crash Course
jreznot
0
8
How IntelliJ IDEA Performance Improved: Past, Present, and Future
jreznot
0
8
Look ma - No Indexing!
jreznot
0
6
Как улучшить жизнь команды в IDE и с чего начать
jreznot
0
140
Modern UI Test Automation with Selenium Libraries
jreznot
2
3k
IDE в помощь специалисту по тестированию
jreznot
0
61
Мигрируй это!
jreznot
0
73
How We Support New Technologies, Languages, and Frameworks in IntelliJ IDEA
jreznot
0
230
Other Decks in Programming
See All in Programming
Tuning GraphQL on Rails
pyama86
2
1.1k
RailsのPull requestsのレビューの時に私が考えていること
yahonda
5
1.7k
offers_20241022_imakiire.pdf
imakurusu
2
360
カスタムしながら理解するGraphQL Connection
yanagii
1
1.2k
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
110
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
9
1k
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
5
3.6k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
240
Vue.js学習の振り返り
hiro_xre
2
130
Universal Linksの実装方法と陥りがちな罠
kaitokudou
1
220
Pinia Colada が実現するスマートな非同期処理
naokihaba
2
160
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
0
160
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
7.9k
Designing for humans not robots
tammielis
249
25k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
The Language of Interfaces
destraynor
154
24k
Visualization
eitanlees
144
15k
Bash Introduction
62gerente
608
210k
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