[expert fridays] python meetup - Леонид Блохин: "Нейросети на...

23
www.provectus. com A presentation of expertise we boast and services we render for partners across the board, around the globe. © Provectus, Inc.

Upload: provectus

Post on 12-Jan-2017

41 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

www.provectus.com

A presentation of expertise we boast and services we render for partners across the board, around the globe.

© Provectus, Inc.

Page 2: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"
Page 3: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Нейросеть на python

www.provectus.com

Page 4: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

О чем пойдет речь

• Немного вспомним нейросети

• Поговорим о хорошем инструменте для машинного обучения

• Поговорим о сервисе для хорошего инструмента для машинного обучения

• Посмотрим, как используя эти радости, на питоне, в несколько строчек запилить годный машинлернинг с предоставлением на фронтенд простенького интерфейса для использования.

www.provectus.com

Page 5: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Немного о нейросетях

• Один персептрон, или не один

• Функция активации

• Может быть немного математики х(у) = @#$%

www.provectus.com

Page 6: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Сферический персептрон в вакууме

www.provectus.com

Page 7: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Мозг здорового Крэнга

один нейрон много нейронов

www.provectus.com

Page 8: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Мозг Крэнга курильщика

www.provectus.com

Page 9: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

немного математики

www.provectus.com

Page 10: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

функции активации

www.provectus.com

Page 11: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

и почему же ИИ еще не захватил мир?

www.provectus.com

Page 12: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Инструмент для машин лёнинга

• Apache Spark

• MLlib

www.provectus.com

Page 13: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Apache Spark™ is a fast and general engine for large-scale data processing.

www.provectus.com

Page 14: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Spark MLlib● Classification: logistic regression, naive Bayes,...● Regression: generalized linear regression, isotonic regression,...● Decision trees, random forests, and gradient-boosted trees● Recommendation: alternating least squares (ALS)● Clustering: K-means, Gaussian mixtures (GMMs),...● Topic modeling: latent Dirichlet allocation (LDA)● Feature transformations: standardization, normalization, hashing,...● Model evaluation and hyper-parameter tuning● ML Pipeline construction● ML persistence: saving and loading models and Pipelines● Survival analysis: accelerated failure time model● Frequent itemset and sequential pattern mining: FP-growth, association rules, PrefixSpan● Distributed linear algebra: singular value decomposition (SVD), principal component analysis (PCA),...● Statistics: summary statistics, hypothesis testing,...

www.provectus.com

Page 15: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Сервис для хорошего инструмента для машинного обучения

MistПрелестные возможности для работы со спарком

● Spark 2.0.0 support!● Spark Contexts orchestration● Super parallel mode: multiple Spark contexts in separate JVMs● HTTP & Messaging (MQTT) API● Scala & Python Spark jobs support● Support for Spark SQL and Hive● High Availability and Fault Tolerance● Self Healing after driver program failure● Powerful logging● Clear end-user API

https://github.com/Hydrospheredata/mist

www.provectus.com

Page 16: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Предсказываем погоду

• Данные сохраняем в паркет• Обучаем модельки нейросети по станциям• Предсказываем

www.provectus.com

Page 17: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

у нас есть план, будем его придерживаться

фронтенд мист спарк

хадуп данные опогоде

тренер

данные весов

предсказатель

www.provectus.com

Page 18: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

сохраняем в паркет

https://github.com/leonid133/python-spark-savetoparquet

noaa data

parquet

вытаскиваем нужные поляфильтруем плохие данныегруппируем по станциям…>>подготавливаем

www.provectus.com

Page 19: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

тренируем модельку

from pyspark.ml.classification import MultilayerPerceptronClassifier

# Load training datatraining = spark.read.parquet("parquet_data")

mp = MultilayerPerceptronClassifier(blockSize=42, maxIter=300)

# Fit the modelmodel = pm.fit(training)model.save("model_name")

www.provectus.com

Page 20: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

пишем джобу предсказатель

from mist.mist_job import MistJob

class SimpleContext(MistJob): def do_stuff(self, params):

points_dist = params.values() data = getdata_by_point(points_dist)

model = MultilayerPerceptronClassificationModel.load(data.modelel_path) prediction = model.transform(data.df)

answer_obj = answer_df_to_map(prediction) #делаем красивый мап с предсказанием result = answer_obj

return result

www.provectus.com

Page 21: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

спрашиваем результат

HTTP или MQTT

POST http://localhost:2003/api/forecast{

“points”:{"lat": 56.1241, “lng”: 42.3457,...} “distance”: 254

}'

{"success":true,"payload": {

“point”:{“lat”:56.1241, “lng”:42.3457}“sun”:30,“cloud”:75,“temperature”:-25} ...

}, …}

www.provectus.com

Page 22: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"
Page 23: [Expert Fridays] Python MeetUp - Леонид Блохин: "Нейросети на питоне: пфф  easy"

Леонид Блохин

Skype:

Email: [email protected]

www.provectus.com

Благодарю за внимание!