仕事やプライベートで調べたことのメモ書きなど(@札幌)

仕事やプライベートで調べたこと、興味ある事のメモ書きです。2016年4月から札幌で働いてます。※このブログは個人によるもので、団体を代表するものではありません。

Botの王道:配達ピザの注文をさばくBotを2時間で開発するワークショップ@札幌 (2017/05/31@札幌)に参加

久々にOracleで定期開催している勉強会に行きました。
oracleclouddevelopersh.doorkeeper.jp

というのも、先日、北海道IT推進協会の総会の懇親会で偶然、Oracleの方とお会いしたから。
www.hicta.or.jp
久々に行くかなーって。

私はもともとWeb系ではないので、正直、今回の勉強会で使うテクノロジーはとてもチンプンカンプンなのだけど、このOracleの勉強会は、結構初心者でもついていけるように講師の方が進めてくれるのがありがたいところでもあります。またQiitaで手順を公開してもくれていて、置いてきぼりくらっても、あとで何とかなるのも心強い。

ということで、今回の手順はこちら!
qiita.com

事前準備

さて、今回のテクノロジ。そもそも、これを準備してきてね、というのが、聞いたことあるけど触ったことないものだらけ。
というわけで、セットアップがてら、それが何かということだけさらっと。。。

api.aiのアカウントを作成しておいてください。

api.aiって何ですか?aiを使えるapiに違いない!
api.ai
www.ptengine.jp
「コード入らずで簡単に人工知能を作成できる」ってものらしいです。
とりあえず、googleアカウントで連携!

当日作業するノートPCにNode.jsのLTS(最新安定版)をインストールしておいてください。

Node.jsってなんですか?javascriptの何かでしょう。
Node.js
qiita.com
なるほど、サーバーサイドのjavascriptですね。javascriptも随分と出世したものです・・・。
とりあえず、インストーラでインストール!したものの、これでインストールされるのは?
ん、サーバーなのかな?サーバーサイドだから。

Herokuのアカウントを作成しておいてください。Bot本体を稼働させるクラウドプラットフォームとして利用します。

Herokuって何ですか?名前からは想像つきません。
https://wwww.heroku.com/wwww.heroku.com
ん、クラウドプラットフォーム?セールスフォースみたいなもんですか?
www.sejuku.net
Node.jsを今回ローカルPCに入れたけど、おそらく、公開時の環境をクラウド上に作る、ということだろう、うん。

Heroku CLIを当日作業するノートPCにインストールしておいてください。

これは、コマンドラインからHerokuを使えるようにする何かだろう!とりあえずインストール。
www.terrasky.co.jp

LINE Business Centerにて、ご自身のLINEアカウントであらかじめログインを試しておいてください(当日パスワードがわからなくなる事件が多発しているため)

確かにつまづいた。あと、2段階認証になっているのも、地味に面白いですね。
無事、事前のログイン確認できました!

当日の勉強会

完成形

コンシェルジュ型のボット。すごい。
ボットは昔から存在するんですが、自然言語の解釈など、地味にすごい!

さぁやるぞ

LineでMessaging API

手順はこちら。
qiita.com

api.ai

Googleに買収された。

  • Agent
  • Entity:パラメーターを認識するために必要
  • Intent:ユーザーの意図

IntentとかEntityは自然言語解析では一般的な用語!
Intentは最低10個。20個くらいは入れないと、現実的ではない。たくさん入れると賢くなるよ。

手順はこちらの続きから。
qiita.com

  • 「ML CLASSIFICATION THRESHOLD」をいじると、認識精度の調整ができる。

なんと、設定はこれだけか!!

Bot本体の開発準備

私のPCはWindows環境のため、Powershellで実施。
基本は、手順に従うだけ。

  • constructorとfinishが必要
  • constructorの、this.required_parameterでパラメータを揃える
  • message_to_confirmでパラメータを要求する。(LineのAPIに合わせた記載になっている)
  • finishで終了後の処理(通常はdbに登録するなどするが、今回は返信だけ)
  • 非同期で動いているのでresolveが必要
Herokuへデプロイ

手順通り。基本はHeroku上のgitへpushするイメージ。

わー、動いた!

懇親会

ここまではできるんですけど、この後挫折する人が多いんですよねー。そこにビジネス機会があるのかもしれない。
とりあえず動くものは作れても、ちゃんとビジネスレベルで動くようには超えるべきハードルがあるようです。

第5回 関西DB勉強会に参加(5/20@大阪)

関西DB勉強会に行ってきました。
kansaidbstudy.connpass.com

土曜日の開催にもかかわらず、すごい人の集まり!!
f:id:takumats:20170522131802p:plain

基本編で少しだけ発表させていただいたのですが、各コミュニティの方々の発表と比べると、ちょっと内容的にすみませんでした・・・。でも、今回の勉強会、初参加の方も結構いらっしゃったようなので、この「基本編」の試みは、個人的には非常に良かったと思います。

私がMariaDB|M17とPercona Live 2017から紹介したセッションは、本家のサイトでセッション動画がこうかいされていますので、私の説明で物足りなかった方(たくさんいると思いますが・・)は、ぜひ本家のセッション動画をご覧くださいね!

DEEP DIVE: HOW DATA IS STORED AND QUERIED WITH COLUMNSTORE

https://m17.mariadb.com/session/deep-dive-how-data-stored-and-queried-columnstore

InfluxDB storage engine internals

https://www.percona.com/live/17/content/influxdb-storage-engine-internals

普段、札幌でやっている勉強会でも、こういった試みはぜひやってみたいですね。
懇親会も楽しかったでーす。お話しさせていただいた方、ありがとうございました。
kansaidbstudy.connpass.com

最後にビル1Fで写真撮影しようとしていたら、警備員の人に凄い目で見られてましたが・・・・。

豊平川マラソン 親子ラン(3km) (5/5@札幌)

今年もマラソンシーズンが始まりました!
www.toyomara.com

が、練習ゼロだーーー。北海道だからという言い訳をもとに、冬は練習ゼロ。おなか周りがかなり気になる状態に・・・。

今年最初のれーずは、子供が小学生になったということもあり始めて親子ラン(3km)に参加しました。
真駒内公園を一周弱。子供も歩かないで頑張れました!

なんと、次は千歳でフルマラソン。走れるのか・・・・。

Mautic Meetup Sapporo #7(5/17@札幌)に参加

会社の人に紹介されて、表題のMeetupに参加してきました。
www.meetup.com

Mauticというのは、オープンソースのMA(Marketing Automation)のソフトだそう。
https://jp.mautic.org/

有償だと、マルケトとハブスポットがそこそこ有名。
jp.marketo.com
www.hubspot.jp

オープンソースなので、オンプレやAWSのサーバーなどに自分でインストールして使うのがメインの使い方なんでしょうが、若干の機能制限があるもののホストされたサービスもあります。
mautic.com

説明によると、有償のものに比べると、まだかゆいところに手が届かないところもあり、お金があるなら有償のソフトを使った方がいいのではないか、ということでした。

ちなみにMAとは一言でいうと、「Webを通して優良なリードを獲得しましょう」というためのツールですかね。
それにしても、マーケティングって東京が中心の話だと思ってましたが、こんな勉強会が(失礼!)札幌で7回も続いているというのは若干の驚きでした。それともインバウンドマーケティング(Web中心のマーケティング、と言っちゃっていいのか・・・)だからこそ、札幌からでもやりやすいのでしょうか???

Sapporo Tech Bar #10開催 (2017/5/12@札幌)

前回のSapporo Tech Barは出張中で参加できませんでせんでした。今回は記念すべき第10回目。
www.db-tech-showcase.com

お話は千歳科学技術大学の学生さんから「ち~なび」について。
千歳科学技術大学 小松川研究室

info.chi-navi.net

このバスロケーションシステム、開発期間の短さには驚きました。何でも簡単にできるようになってきているんですね~。(学生さんが頑張ったとも言う・・)

内部データベースにはPostgreSQLを使ってます。理由は、「この研究室では伝統的にPostgreSQLを使っているから」
ではなく、将来的な「PostGIS」利用を見据えているとのこと。今はPostgreSQLで間に合っているとの、指導教官山川先生のコメントでした。なるほど。

それにしても今回お話しいただいた粟津さん、非常に堂々と話されてました。自分が修士の時のことを考えると・・・・・・。

TensorFlow User Group #4に参加(4/19@Google東京オフィス)

忙しさに負け、Blogの更新が滞ってしまいました。もう1ヶ月近く前になるのですが、表題の勉強会に参加してきました。

tfug-tokyo.connpass.com

まず、参加する前からすごい応募!!100名の募集に250名くらいの申込みです。この抽選に当たっただけでも褒めてもらう必要がありますね。

テンソルフロー、興味ありありで参加しましたが、なんともまぁ難しかったですね。でも面白い話もありましたよ。。
資料も公開されてるので、ぜひイベントページをご覧ください。私は内容を語るレベルではありませんでした。

「機械学習の勉強会(仮)」に参加 (2017/4/6@東京)

概要

東京への出張時に勉強会に参加するシリーズ!!
今回は以下の勉強会へ参加しました。。
connpass.com

個人的にはFPGAの話に期待してました。
よく調べてみると、全然他でも盛り上がっている話でした。
私の情報収集能力はまだまだです・・・。
これはぜひタイミングが合えば行ってみたい。
fpgax.connpass.com

講演

今岡さん

  • 日本アンドロイドの会
  • 今岡工学事務所
  • FPGA歴 5年くらい
  • Microsoft MVP

www.itmedia.co.jp

モチベーション
  • GPUDSPFPGA
  • NN推論エンジンは並列化で高速化の余地あり
  • 学習済みモデルをVerilog-HDLで吐き出す、コンパイラのようなものをつくった。
  • Cyclone IV (チップだけなら5ドルくらい)
  • 「Neural Networkを平易に解説してみる」のPythonコードを使用

enakai00.hatenablog.com

手順
  • 5x5の手書き文字を認識する学習済みモデルを用意
  • Cソースコード上でFPGAに実装しやすいように最適化

- 1,-1を1,0に変換
- 量子化調整(32/64ビット整数は必要ない)
- 乗算を省きます

  • 並列化箇所を見極め推論エンジンをVerilogoへ移植
  • 学習はCのコードで行い学習済みモデルをVerilogで吐き出す
使っているNNモデル
  • ホップフィールド・ネットワーク
今回作ったところ
  • 学習済みモデルをHDLで出力
  • モデル
評価ボード使って作業

1クロックの実装では24%のリソースを消費した
25クロックを要する実装では7%→6502(ファミコンやアップルII)と同程度のハードウェア規模

FPGAスタートアップを主催
リソース

www.altera.co.jp

有山さん

超解像技術 - Wikipedia

元にした論文

  • ブロック処理と学習のさせ方周辺領域も含めてやらないとダメ。
  • 活性化関数:ReLU
  • decode_jpeggpuに対応していなかった。

所感

超面白かった。自分でもぜひやってみたい!!