SlideShare a Scribd company logo
1 of 38
AI入門 第2回
「Scala/Spark/Mahout
でレコメンドエンジンを作る」
2017/06/12 ver0.5作成
2017/07/24 ver1.0作成
本セッションの趣旨
商品購入に至るまでの閲覧履歴、つまり、
ユーザ行動ログ (≒Webアクセスログ) を
「Scala/Spark/Mahoutで
解析すると、マーケティングで使える」
という内容です
統計モデルや数式、学習アルゴリズムとかは一切出てき
ません & その領域でのご質問にお応えする領域があまり
ありませんが、
「ビジネス領域での適用」については面白いと思います
2
マーケティングの歴史
をほんの少しだけ
マーケティング黎明期は「マス広告」中心
1950
1960
1970
1980
1990
2000
年代
高度経済成長期
(あこがれ消費)
安定成長期
(ふんいき消費)
バブル崩壊
(選択消費)
明るいナショナル
3時のおやつは文明堂
オーモーレツ
(丸善石油)
違いがわかる男
ネスカフェ
24時間戦えますか?
5時から男のグロンサン
いつかはクラウン
(TOYOTA)
消費者の情報源はTV等、マスメディア4種
1950
1960
1970
1980
1990
2000
年代
高度経済成長期
(あこがれ消費)
安定成長期
(ふんいき消費)
バブル崩壊
(選択消費)
明るいナショナル
3時のおやつは文明堂
オーモーレツ
(丸善石油)
違いがわかる男
ネスカフェ
24時間戦えますか?
5時から男のグロンサン
いつかはクラウン
(TOYOTA)
マスマーケティング
広告宣伝部→総合広告代理店
4マスメディア(TV、ラジオ、新聞、雑誌)
統合的マーケティング
差別商品開発、販売促進、セグメンテーション
ライフスタイル研究、消費者ニーズへの対応
インターネットとスマホで消費者行動が激変
2000
2014
2017
年代
バブル崩壊
IT社会
(選択消費)
スマホ社会
勉強しまっせ
よーく考えよー
お金は大事だよ
カードの切り方が人生だ
白戸家
ビッグデータ元年
マーケティングのメディアも変革期を迎えた
2000
2014
2017
年代
バブル崩壊
IT社会
(選択消費)
スマホ社会
勉強しまっせ
よーく考えよー
お金は大事だよ
カードの切り方が人生だ
白戸家
ビッグデータ元年
デジタルマーケティング
4マスメディア
+WEB広告(モバイル、SEM、SNS)
統合データマーケティング
4マスメディア
+WEB広告(モバイル、SEM、SNS)
+ビジネスデータ・WEBトラッキング
あらゆるデータが捕捉可能になったので...
「雰囲気」「カン」で行っていた顧客把握から
? ?
?
「データ中心」での分析・展開が可能となった
データ
10
データ中心の代表
「レコメンドエンジン」
=「おすすめ機能」
例1.ファッションサイトの購入ページ
商品に関連した「おすすめ」が表示される
関連性が高いミュールや
サンダルが「おすすめ」として
表示される
このミュールに…
例2.Amazon「この商品を買った人は~」
高確率で「トネガワ」にも
関心が高いであろうことから、
売上アップに繋がりやすい
「ハンチョウ」に興味あって
見に来る人は…
「おすすめ」を ”機械学習” で自動生成
• 商品属性相関
(こんなもの買った人は、
こんなもの買ってま
す)
• 顧客属性相関
(あなたに似た人は
こんなもの買ってま
す)
• 売上ランキング
などなど
レコメンド情報
(機械学習で生成)
エンドユーザー
15
レコメンドエンジン
を実装してみる
多数の商品閲覧履歴からレコメンド生成
Webアクセス
ログ(タグ)
SFTP
■Webアクセスログ取込
■レコメンドデータ生成
レコメンド
表示
レコメンド
データ
配信
サーバ
ファイル
システム
ビッグデータ解析
駆動エンジン
商品閲覧
相関計算商品別集計
17
EMR?
Elastic(伸縮自在な) MapReduceの略
ポチれば作れるスケーラブルなデータ基盤
マネジメントコンソールでEMR+Spark選択
21
Spark
vs
Hadoop
Spark: 少量データをインメモリで高速処理
 集計対象データ量が多く
無いためオーバースペック
(速度よりも)データ量重視
で分散処理する
 データ量が多い(億越え)
 処理頻度が低い(1日1回)
 処理速度が普通
比較的少な目のデータを
高い頻度でバンバン回す
 データ量が比較的少ない
 処理頻度が高い
 処理速度が高速
 インメモリで高速処理可能
 集計対象データ量もメモリ
容量の範囲内に収まる
業務要件 選定/非選定理由
Hadoop
Spark
Spark: 少量データをインメモリで高速処理
通常ScalaコードとSparkコードの差
val file = scala.io.Source.fromFile( "/tmp/log.txt" )
val lines = file.getLines
val error = lines.filter( _.contains( "ERROR" ) ).size
通常のScalaコードを書くのと、ほぼ変わら
ないコードで、複数クラスタでの分散処理
が実現されてしまうのが、Sparkの凄さ
通常のScalaコード
val lines = sc.textFile( "/tmp/log.txt" )
val error = lines.filter( _.contains( "ERROR" ) ).count
Spark呼出を利用したScalaコード(裏では、複数のクラスタに分散されている)
Spark 2.x系 (初回リリースは2016/7/26) だとメソッド
セットが変わる (RDD※/DataFrameもDatasetに変更)
※Resilient Distributed Dataset: 不変で並列実行可能な分割コレクション
25
Mahout?
Mahout: レコメンド向き機械学習エンジン
Mahout: 最大の特徴は…
レコメンドやクラスタリングの機械学習
アルゴリズムをコマンドラインから
パラメータ指定するだけで利用できる
ノンプログラミングで、大規模データの
分析が気軽にハンドリングできる
(使ってないけど)Sparkとネイティブ
接続もできて、更に高速化できるらしい
28
①商品別で
商品閲覧を
集計する
ScalaからSpark呼出で商品別集計
Webアクセス
ログ(タグ)
SFTP
■Webアクセスログ取込
■レコメンドデータ生成
レコメンド
表示
レコメンド
データ
配信
サーバ
ファイル
システム
ビッグデータ解析
駆動エンジン
商品閲覧
相関計算商品別集計
ScalaからSpark呼出で商品別集計
2017-06-01T00:00:27Z activities.xxxxxxxxxx
{"ts":1496275227402,"account":"xxxxxxxxxx","vt":"wKPoI.lNwXiTH","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"HNHYA-367693-
04"}]}
2017-06-01T00:00:57Z activities.xxxxxxxxxx
{"ts":1496275257338,"account":"xxxxxxxxxx","vt":"16fHvG.lMYDCZ7","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"HNKYA-364957-
04"}]}
2017-06-01T00:01:48Z activities.xxxxxxxxxx
{"ts":1496275308434,"account":"xxxxxxxxxx","vt":"3%2BsMkQ.lN4P72N","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"HNRYB-
360844-04"}]}
2017-06-01T00:02:52Z activities.xxxxxxxxxx
{"ts":1496275372269,"account":"xxxxxxxxxx","vt":"6TxF1.lLWEepM","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"HNHJB-357844-
03"}]}
2017-06-01T00:03:45Z activities.xxxxxxxxxx
{"ts":1496275425990,"account":"xxxxxxxxxx","vt":"Y9hcv.lFgztJ0","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"FKMYA-368333-
03"}]}
2017-06-01T00:05:14Z activities.xxxxxxxxxx
{"ts":1496275514546,"account":"xxxxxxxxxx","vt":"1jrjda.lNhpu8E","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"OSHGF-363474-
02"}]}
2017-06-01T00:05:24Z activities.xxxxxxxxxx {"ts":1496275524952,"account":"xxxxxxxxxx","vt":"3%2525252525252525252520il-
g.lzgfvlh","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"CTRJA-362952-05"}]}
2017-06-01T00:06:43Z activities.xxxxxxxxxx
{"ts":1496275603657,"account":"xxxxxxxxxx","vt":"2LXKDi.lBqDjmb","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"CTJJK-265962-
03"}]}
2017-06-01T00:07:36Z activities.xxxxxxxxxx
{"ts":1496275656723,"account":"xxxxxxxxxx","vt":"6TxF1.lLWEepM","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"HNHJB-357841-
03"}]}
2017-06-01T00:08:10Z activities.xxxxxxxxxx
{"ts":1496275690808,"account":"xxxxxxxxxx","vt":"28Y4OC.lwdLlM4","cid":"","ctype":"1","act_type":"bdr_detail","act_params":[{"product_id":"FUJJK-368890-
03"}]}
…
商品IDとユーザIDの入ったユーザ行動
(Webアクセス)ログを商品別に集計する
※集計後のデータは、公開控えさせてください
ScalaからSpark呼出で商品別集計
// Sparkの初期化
val conf = new SparkConf().setAppName( "mario-opt-mapred/ActivitiesItemCorrCalculation" )
conf.set( "spark.hadoop.validateOutputSpecs", "false" )
val sc = new SparkContext( conf )
val hadoopConf = sc.hadoopConfiguration
hadoopConf.set( "fs.s3a.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem" )
hadoopConf.set( "fs.s3a.awsAccessKeyId", configs.getOrElse( "AWS_ACCESS_KEY_ID", "" ) )
hadoopConf.set( "fs.s3a.awsSecretAccessKey", configs.getOrElse( "AWS_SECRET_ACCESS_KEY", "" ) )
…
// 入力ファイルからRDDを作り集計
val inputAct = sc.textFile( actFile )
q.sourceAggregateType match {
case SOURCE_AGGREGATE_TYPE_COUNT =>
val rddAct = inputAct.filter( x => x.nonEmpty && x.contains( schemaName ) ).map { x =>
val json = gson.fromJson[ AggregateBehavior ]( x, classOf[ AggregateBehavior ] )
val id = if ( json.params.get( q.sourceAttribute ) != null && json.params.get( q.sourceAttribute ).length > 128 )
json.params.get( q.sourceAttribute ).substring( 0, 128 ) else json.params.get( q.sourceAttribute )
( id, ( json.vt.hashCode, json.count ) )
}.filter( x => x._1 != null && x._1.nonempty )
val rddActAndItem = rddAct.join( rddItem )
val csv = rddActAndItem.map( x => { Array( x._2._1._1, x._2._2, x._2._1._2 ).mkString( "," ) } )
csv.repartition( 1 ).saveAsTextFile( outputFile )
Sparkを呼び出すバッチをScalaで作成
32
②商品閲覧の
相関を
計算する
Mahoutで商品閲覧の相関を計算
Webアクセス
ログ(タグ)
SFTP
■Webアクセスログ取込
■レコメンドデータ生成
レコメンド
表示
レコメンド
データ
配信
サーバ
ファイル
システム
ビッグデータ解析
駆動エンジン
商品閲覧
相関計算商品別集計
Mahoutで商品閲覧の相関を計算
3 69 0.9577542080518994
3 482 0.9091600912310319
3 601 0.8981679030325392
3 909 0.9038946377087511
3 1161 0.9474190693417451
3 1532 0.9026751528181597
3 2533 0.9007963954721725
3 2561 0.8957260345613678
3 2568 0.8964474529800505
3 2575 0.8990213228483238
…
前述の「商品別閲覧集計」で作った結果
の相関をMahoutで算出すると、以下の
ような、商品間の相関係数が取得でき、
相関係数が高いものをレコメンドする
Mahoutで商品閲覧の相関を計算
org.apache.mahout.cf.taste.hadoop.similarity.item.ItemSimilarityJob
引数:
-i s3://xxxxxxxxxxxxxxx/xxxxxxxxxx/xxxxxx/xxxxxx/xxxxxxxx/201706060332/ds/out/Ratings
-o s3://xxxxxxxxxxxxxxx/xxxxxxxxxx/xxxxxx/xxxxxx/xxxxxxxx/201706060332/recommendations
-s SIMILARITY_LOGLIKELIHOOD
--tempDir xxxxxxxxxxxxxxx
--booleanData true
MahoutをEMRから起動して、算出結果
はS3を経由して、Auroraに書き出される
36
③レコメンド
データの配信
配信したレコメンドデータで「おすすめ」表示
Webアクセス
ログ(タグ)
SFTP
■Webアクセスログ取込
■レコメンドデータ生成
レコメンド
表示
レコメンド
データ
配信
サーバ
ファイル
システム
ビッグデータ解析
駆動エンジン
商品閲覧
相関計算商品別集計

More Related Content

Similar to AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」

企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例
企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例
企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例Toshihiko Yamakami
 
xOps: エンジニアがスタートアップの成長の原動力となる日
xOps: エンジニアがスタートアップの成長の原動力となる日xOps: エンジニアがスタートアップの成長の原動力となる日
xOps: エンジニアがスタートアップの成長の原動力となる日Takaaki Umada
 
SocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイSocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイMakoto Shimizu
 
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うかSORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うかSORACOM,INC
 
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...オラクルエンジニア通信
 
BANKING API AND API ECOSYSTEM
BANKING API AND API ECOSYSTEMBANKING API AND API ECOSYSTEM
BANKING API AND API ECOSYSTEMAPI Meetup
 
【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング
【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング
【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティングKohei Nishikawa
 
Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会
Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会
Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会scalaconfjp
 
大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・
大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・
大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・Yukio Kubo
 
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013智治 長沢
 
20160621 KDL_monacaソリューションセミナー
20160621 KDL_monacaソリューションセミナー20160621 KDL_monacaソリューションセミナー
20160621 KDL_monacaソリューションセミナーkdl_yamanaka
 
データマイニングCROSS 第2部-機械学習・大規模分散処理
データマイニングCROSS 第2部-機械学習・大規模分散処理データマイニングCROSS 第2部-機械学習・大規模分散処理
データマイニングCROSS 第2部-機械学習・大規模分散処理Koichi Hamada
 
次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?
次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?
次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?Accenture Japan
 
Banking APIとAPIエコシステム
Banking APIとAPIエコシステムBanking APIとAPIエコシステム
Banking APIとAPIエコシステムAPI Meetup
 
日本市場における最新のDrupalビジネス動向 20160901v4
日本市場における最新のDrupalビジネス動向 20160901v4日本市場における最新のDrupalビジネス動向 20160901v4
日本市場における最新のDrupalビジネス動向 20160901v4Hidekazu Ikeda
 
アプリケーション概観 29 feb2016 のコピー
アプリケーション概観 29 feb2016 のコピーアプリケーション概観 29 feb2016 のコピー
アプリケーション概観 29 feb2016 のコピーYoshimitsu Homma
 
マイクロモノづくり実践道場チラシV1.0
マイクロモノづくり実践道場チラシV1.0マイクロモノづくり実践道場チラシV1.0
マイクロモノづくり実践道場チラシV1.0shigeu utsunomiya
 
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組みTsuyoshi Hirayama
 

Similar to AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」 (20)

企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例
企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例
企業越境ビジネスリエンジニアリングの3次元モデルによる成功事例
 
xOps: エンジニアがスタートアップの成長の原動力となる日
xOps: エンジニアがスタートアップの成長の原動力となる日xOps: エンジニアがスタートアップの成長の原動力となる日
xOps: エンジニアがスタートアップの成長の原動力となる日
 
Web会議 in 青森
Web会議 in 青森Web会議 in 青森
Web会議 in 青森
 
SocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイSocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイ
 
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うかSORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
SORACOM Conference Discovery 2017 | B4. IoT、クラウド、CIOは技術にどう向き合うか
 
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
[Modern Cloud Day Tokyo 2019] 【ビジネスをさらに加速させる!!】Oracle Cloud を活用したデータドリブン ユースケ...
 
BANKING API AND API ECOSYSTEM
BANKING API AND API ECOSYSTEMBANKING API AND API ECOSYSTEM
BANKING API AND API ECOSYSTEM
 
【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング
【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング
【Open cloud innovation festa 2016 資料】 SoftLayerで始めるデジタルマーケティング
 
Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会
Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会
Alp x BizReach SaaS事業を営む2社がお互い気になることをゆるゆる聞いてみる会
 
大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・
大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・
大阪市南港ATC イメディオ IoT・ M2Mセミナ2016資料(web公開用) 3つの手探り〜技術・マネタイズ・セキュリティ・・・
 
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
これからの開発環境の話をしよう - 開発現場力を高める環境づくり #ost2013
 
20160621 KDL_monacaソリューションセミナー
20160621 KDL_monacaソリューションセミナー20160621 KDL_monacaソリューションセミナー
20160621 KDL_monacaソリューションセミナー
 
データマイニングCROSS 第2部-機械学習・大規模分散処理
データマイニングCROSS 第2部-機械学習・大規模分散処理データマイニングCROSS 第2部-機械学習・大規模分散処理
データマイニングCROSS 第2部-機械学習・大規模分散処理
 
次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?
次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?
次世代Analytics製品のSAP Analytics Cloud(SAC)ってなんなの?どうなの?
 
Banking APIとAPIエコシステム
Banking APIとAPIエコシステムBanking APIとAPIエコシステム
Banking APIとAPIエコシステム
 
日本市場における最新のDrupalビジネス動向 20160901v4
日本市場における最新のDrupalビジネス動向 20160901v4日本市場における最新のDrupalビジネス動向 20160901v4
日本市場における最新のDrupalビジネス動向 20160901v4
 
API Meetup #5 LT
API Meetup #5 LTAPI Meetup #5 LT
API Meetup #5 LT
 
アプリケーション概観 29 feb2016 のコピー
アプリケーション概観 29 feb2016 のコピーアプリケーション概観 29 feb2016 のコピー
アプリケーション概観 29 feb2016 のコピー
 
マイクロモノづくり実践道場チラシV1.0
マイクロモノづくり実践道場チラシV1.0マイクロモノづくり実践道場チラシV1.0
マイクロモノづくり実践道場チラシV1.0
 
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
第73回 Machine Learning 15minutes ! IBM AI Foundation Modelsへの取り組み
 

More from fukuoka.ex

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」fukuoka.ex
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」fukuoka.ex
 
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」fukuoka.ex
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」fukuoka.ex
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」fukuoka.ex
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」fukuoka.ex
 
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」fukuoka.ex
 
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますfukuoka.ex
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」fukuoka.ex
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」fukuoka.ex
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介fukuoka.ex
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」fukuoka.ex
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますElixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますfukuoka.ex
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 

More from fukuoka.ex (14)

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
 
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
【macOSにも対応】AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」
 
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
 
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
 
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版ありますAI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
AI入門「第3回:数学が苦手でも作って使えるKerasディープラーニング」【旧版】※新版あります
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますElixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 

AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」