Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Вам стоит использовать Scala в машинном обучении
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuriy Artamonov
June 08, 2019
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Вам стоит использовать Scala в машинном обучении
Yuriy Artamonov
June 08, 2019
More Decks by Yuriy Artamonov
See All by Yuriy Artamonov
Survival Tips on Project Reactor and Spring WebFlux
jreznot
0
68
Intellij IDEA Plugins Crash Course
jreznot
0
110
How IntelliJ IDEA Performance Improved: Past, Present, and Future
jreznot
0
92
Look ma - No Indexing!
jreznot
0
56
Как улучшить жизнь команды в IDE и с чего начать
jreznot
0
170
Modern UI Test Automation with Selenium Libraries
jreznot
2
3.2k
IDE в помощь специалисту по тестированию
jreznot
0
86
Мигрируй это!
jreznot
0
130
How We Support New Technologies, Languages, and Frameworks in IntelliJ IDEA
jreznot
0
340
Other Decks in Programming
See All in Programming
The Rails Doctrine Decade
koic
2
450
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
460
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
160
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
110
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
660
FreeBSDでZabbixを動かす
kenkino
0
340
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
5.8k
SREの越境 / SRE Collaboration
y0hgi
2
290
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
320
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.1k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
19
20k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Bash Introduction
62gerente
615
220k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
Building the Perfect Custom Keyboard
takai
2
890
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Fireside Chat
paigeccino
43
4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
480
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