de:code 2016 Day2のメモ
これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~
朝一のセッションなのに立ち見でした。
完全に「ちょまどさん」を見に来た人でいっぱいの雰囲気。
XamarinとNativeの違いを分かりやすく解説してくれた。
SlackもXamarinで作られてるらしい。
日本酒を学んで、自分好みのお酒と出会える日本酒アプリSakenomy
も紹介されていた。
早くベースクラスライブラリを共通化して欲しいですね。
(今は.NET Frameworkと.NetCoreとWindowsだったかが別になっている)
Programmable Video ~Azure Media Services でのビデオ サービス開発~
AzureMediaServicesExplorerToolというオープンソースのツールで色々な機能が確認できるらしい。
Assetを作る=暗号化してAzureにアップロード
基本的にマルチデバイス対応してくれる。
LiveStreamingにも対応している。
Azure Media Analyticsには機械学習が仕込んであるので動画の検索が可能になる。
- Indexer 話しているものからテキストを生成
- Face Detection 人の顔の取得
- Emotion Detection 感情の推測
- Video Summarization ビデオのサマリを作成
プレビュー版ではOCRも付いている。
りんなを徹底解剖。"Rinna Conversation Services" を支える自然言語処理アルゴリズム
1日で5年分のSharpのツイート数を超えたらしい。
使われている技術
・Learning to Rank
検索エンジンのランキングのような仕組み
・Word to Vector
200次元で単語の近さを表現
・Term frequency Inverse Document Frequenxy
単語の出現頻度や逆出現頻度 情報検索や文章要約に利用される
・ニューラルネットワーク
自然言語の学習に応用
りんなのパフォーマンスを出すのに結構なインスタンス数は使ってるらしい。
DSSM(2つの文字列の類似度を学習するモデル)とRNN(再帰的ニューラルネットワーク)の組み合わせ。
類似度の差を最大にすることで感動を与えるという考え方。
単純に言葉を分解してベクトル化しているだけではない。
→左から右への言葉の流れによって重み付けしている(右から左も同様にやっているらしい→日本語は動詞に重みがあるから)
辞書があるわけではなく、りんなはちゃんと単語から文章を作成しているというところが結構な衝撃だった。
あとは、ビジネスへの活用のテストとして、Rinna Conversation Serviceが限定公開されていた。
Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~
サジェスト機能も簡単につけられる。
文字フィルタ→トークナイザ→トークンフィルタという3レイヤ構造。
基盤はLuceneCoreが使われている。
自動的に関連性をもとにソートされる。
ただし、orderbyを指定すると関連性は考慮されない。
まとめ
- りんなすごい
- Cognitive ServiceのAPIがいろいろすごいので使ってみたい
- Media Serviceがいたれりつくせりで動画配信基盤を簡単に作れそう
de:code 2016 Day1のメモ
忘備録的なものです。
キーノート
各カテゴリごとにデモがあったりCEOの話があったり、かなり豪華でした。
個人的には、キーノートのビデオに出演させて頂いたことがかなりの驚きですが、
これによってカラダメディカのDevOpsの取り組みが伝わればいいなと思います。
1:45:30あたりから私が出てます。
各セッションでの面白かったポイント
Pepper × Microsoft Azure 協業の舞台裏 ~未来の商品棚から広がる世界~
.NET言語 (C#) と .NET コンパライ プラットフォーム (Roslyn) 最新情報
- Roslynはコンパイラプラットフォーム
- ソースコードのコンパイル時に発生する情報をAPIとして提供する
- C#7.0の機能について
- 0b1などのバイナリ変数を宣言できる
- 100_000_000という数字のセパレートが可能
- ローカルファンクションの設定が可能
- ref で参照戻り値
- タプル型
- PatternMatching
Bot Framework & Cognitive Services ~自動応答ソリューション開発に挑戦~
このセッションは特にジニアスさんの話が面白かった。
Cognitive ServiceのAPIの話も結構あってEmotion API(画像から感情を推測)やFace API(画像から性別や年齢を推測)はかなり面白そうで使ってみようと思った。
マイクロソフト最新テクノロジと魅力あふれる未来像
西脇さんはやっぱりプレゼンがうまい。プレゼンうまくなりたい。
また、デモがたくさんあって面白かった。
DMMのロボットのパルミくん
⇒会話で色々できるoffcie365の予定やexcel onlineと連携したり
テスラという電気自動車
⇒モバイルのアプリはXamarinで動いている
りんな→アシストではなくコミュニケーション
⇒テレビ放送の内容とチャンネルを分析していたりする(放送内容の詳しい内容まで分析してるから結構すごい)
以上。
DevOpsハッカソン ~第二回~
昨年実施したDevOpsハッカソンの第二回を実施しました。(3日間)
今回もMicrosoft DevOpsエバンジェリストの牛尾さんにご協力頂きました!!
しかも今回は、Azureのエバンジェリストの佐藤直生さんも来ていただきました。
佐藤さんに聞けばなんでも解決する感がハンパなかった。。。
ありがとうございました。
■やったこと/できた成果(おおまかな)
- VSTS(Visual Studio Team Services)から現状のソースについてデプロイ自動化ができた
⇒今までオフショアメンバーにお願いしていたリリース作業(リハーサル作業)が自動化できたので、待ちなどのリードタイムが削減できた!!!
デプロイ自動化はCloudServiceでもWebAppsでも簡単に作成できました。
早く本運用にのせたい。 - VSTSのWORK部分のカスタマイズができた。(by POのおかげ)
絶賛PO作成中ですw
見やすくなって素敵ですね。
POいわくバーンダウンのところがまだ納得いっていない模様。 - 仮説検証フェーズのValueStreamMappingを書いて課題解決
⇒前回も実施したValueStreamMapping手法を使いました。
マジでおススメな手法です。
課題がいくつも浮き彫りになって良かった。あと、BOやデザイナーも巻き込めたのが良いポイントでした。 - フィードバック系ツールを使ってみた
Feed Back Clientを使ってみた
⇒音声付きの動画をとってVSTSのタスクやバグと紐づけたりできるのがかなり素敵。
しかしChrome ExtensionのExploratory Testingの方がもっと素敵
⇒キャプチャ撮ってそのまま文字や線が書き込めて、VSTSのタスクやバグとして取り込めるのが高機能すぎるました。今後絶対使う!!!
■気づき
Be Lazy!!!
牛尾さんから得た気づきです。
いかに怠けて最大限のValueを出すかが重要。今日から実践しよう。
このブログもBe Lazy!!!
■今後の課題
今回作ったリリースの自動化やVSTSのカスタマイズなどを本運用にのせてどんどんリリースしていける体質を早く作りたい!
Developer Summit 2016 (デブサミ)に行ってきた 〜2日目〜
■前置き
気になったセッションの感想など雑多な感じに書いています。(一部のセッションだけ)
あくまで個人の意見です。
■強いチームの作り方
【資料公開】強いチームの作り方(デブサミ2016版) | Ryuzee.com
今回のデブサミの中で一番共感できたし聞きに行って良かったと思った話。
自分たちのチームへの改善のヒントがいくつも出てきました。
一部を抜粋して紹介します。
フィードバックサイクルは製品だけではなく、組織運営も同じ
→強いチームの特徴は「続けられること」
多数決はよくない
→少数派が何回も重なる人はどうしても反感を持ってしまう(ハンターハンター3巻より)
→そういう時は5本指を使うと良い
- 0 = この時点で決定を行うこと自体に反対
- 1 = 重大な問題がある。そのまま決定したらアクションを起こす
- 2 = 問題がある。もっと話し合いをしたい
- 3 = 良いと思わないが自分はそれでも構わない
- 4 = 良いので協力する
- 5 = 素晴らしいので自分が実行のリーダーになっても良い
この考え方は結構使える気がしたので、自分のチームでも採用してみようと思った。
チームのスキルを見える化すると良い
ただし、それを評価に使うことだけはやっちゃダメ!
その時点で見える化した効果がなくなる(ちゃんとできなくなる)
組織構造はアーキテクチャに影響を与える
→マイクロサービスアーキテクチャなどは特にそんな感じ
おまけ
発表の後に「オフショアとのチームの作り方」について相談にいったが、やっぱりうまくやるためには、「同じ場所で働いてみる」or「ブラックボックス化して扱う」のどちらかに振り切った方が良いとのこと。
確かに自分のこの5ヶ月ほどのオフショア経験から考えると納得がいく。
■鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
デモ中心で面白かった。
TensorFlowとIMAGENETを使って簡単に画像認識を作った話。
また、NeutralTalk2に関しては、iPhoneのカメラでうつったものをリアルタイムに文章で説明するという動画が紹介されていてすごかった。
日本オラクルの方の話なので、もちろんOracleクラウドの紹介があったわけだが、感心したのは、下記の2点。
特に二つ目は、AWSやAzureがまだ手を出していない部分ですねー。
そのうち他のクラウドも同じことが実現されるでしょうか。
■そろそろ俺たちの本気を見せてやるぜ!~ マイクロソフトとOSSごった煮 DevOps 衝撃デモシリーズ!
自分が参加したセッションの中では一番盛り上がってました。牛尾さんが冒頭で「Are you ready?」と絶叫してましたw
デモの内容も面白かったです。
複数あったデモの中でネタ的に面白かったのが、MineCraftでDockerを制御してたやつ。
以上。
Developer Summit 2016 (デブサミ)に行ってきた 〜1日目〜
■前置き
気になったセッションの感想など雑多な感じに書いています。(一部のセッションだけ)
あくまで個人の意見です。
■ブース
気になったのは、Microsoftのブースでdecodeのチケットがあたる抽選をやっていたこと。
もちろんハズレましたが。。。
代わりにdecodeTシャツをもらいました。(ノートなど複数から選べます。)
■エンジニアなら使える深層学習 ~ TensorFlowやDataRobotで機械学習がもっと身近に
Datarobotの人の話。
Machine Learning Software - DataRobot
簡単なデモで使われてたけど、かなり便利そう。
ポチっで最適なアルゴリズムまで検証してくれるとか最強すぎる。
今度使ってみよ。
また、以下の記事が紹介されていました。
要点としては、Googleの画像認識技術が(しかも人以上の精度)ライブラリとして提供されたということはすごいことだってこと。
後は「深層学習とは」という内容。
らしい。概念的な話だったけどなかなか面白かった。
■大規模 SPA ( Single Page Application ) を TypeScript と AngularJS を駆使して5ヶ月で作った話
リクルートの人の話。
英語サプリというアプリの話。
techブログの宣伝もしていた。
NET BIZ DIV. TECH BLOG – リクルートマーケティングパートナーズのデザイナー、エンジニア、スクラムマスターたちが発信する Web 開発情報メディア
軽くバズったトイレのセンサーの記事があったのもこのブログ。この記事面白かったな。そしてうちの会社でもやりたいという話は何度も出ていたくらいだから軽くバズったんだろうな。
- AngularJSはフルスタックで大規模で学習コストが高いが代償を払う価値が有る
- TypeScriptに救われた
- SunlimeTextからInteliJを使うようになった
- AngularJSを使うなら強力なルーティング機能があるUI Routerを一緒に使うと良い
- 細かい内容は全て上記ブログに公開済み
プロダクトに適用するときは参考にしよう。
■Yahoo! JAPAN の iOS アプリ Swift 対応について
yahooショッピングアプリ
swiftの大きなメリット
→安全なコード + 関数型/プロトコル指向
段階的に導入した
→実際にクラッシュ率が半減したらしい
ヤフオクアプリ
RxSwiftによるMVVMモデルを採用
Rx系は良いらしい
objc2swiftを自分たちで作って進めた
UIフレームワークがPure-Swift化されないと厳しいこともある
これもなかなか面白かった
■Yahoo! JAPANを支えるデータテクノロジー 〜機械学習、クラウド分散システム処理モデル〜
出品画像とカテゴリの差異を予測
ただし、機械学習がやるのは差異が低い順に並べるまでで実際に判断するのは人
→え、なんで?
と思ったけど、人は量とスピードに限界があって機械は未知のパターンや100%の精度が難しいことを考えれば確かになと思う。
課題
学習データを高い制度で大量、継続的に増加させる仕組み
これもなかなか面白かった。
自分がやってるサービスでも活かせるかも!!
以上。
Azure Machine Learningのハンズオンセミナー ( 機械学習とは 編 )
Azure Machine Learningのハンズオンセミナーに参加してきたので、機会学習についてとか感想とかを書こうと思います。今回は、機会学習とはっていうところについて書こうと思います。よりハンズオンに近い部分は次回書きます。
■機械学習について
・機械学習とは
「人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のこと」です。
勘違いしないポイントとしては、判定基準などを人間が決めるのではない、ということです。判定基準自身をコンピュータが決めます。
その元になるのが、インプットされるデータやアルゴリズムなどです。
・機械学習の実例
Twitterの反応分析(P/N判定)やおすすめユーザー
Amazonのリコメンド
エレベータの異常検知
サーバーの故障検知(Azureでも使っているみたいです)
・分析手法
上図のような概念図らしい。
それぞれを解説すると下記の通りです。
教師あり学習
⇒訓練データ(人間が事前に判断したデータ)を元に分析器を作成する
⇒つまり答えのある問題集を解いて学習する
教師なし学習
⇒データ群だけ与えられて学習する
⇒答えのない問題集を必死に考えて解く
回帰分析
⇒与えられたデータから数値を予測するもの
⇒渋谷1LDKだったら15万くらいかなーみたいな予想
統計分類
⇒与えられたデータから適切なラベルを予測するもの
⇒こんな感じの間取り図でしっかりした作りだったら分譲物件かなーみたいな予想
⇒値の類似性をもとにして与えられたデータを複数グループに分ける
⇒身長/体重をもとに肥満/ふつう/やせになんとなく分けるみたいな
ただし、上記は主な手法であってAzureではその他にも色々できるらしい!!!
■面白い事例の紹介
Azureの機能でMicrosoftの人が3時間ほどで作ったというサービスの紹介がありました。
実際にやってみて実年齢 -1歳だったのでなかなかの精度なんじゃないでしょうかw
■自分が誤解していたところ/知らなかったところ
・リコメンドエンジンってなんでもリコメンドできるんでしょ?
⇒ 数値的な解析はAzureでも簡単にできますが、テキスト情報の解析はハードルが高いです。特に日本語だとすんなりできないので、自分である程度辞書なり、重みづけなりを考えたうえでアルゴリズムを駆使して作る必要があります。一応テキストをハッシュ化して解析はできるが日本語ではうまくいかないらしい。
・AzureとAWSのMachineLearningってどう違うの?
⇒AWSの方が勝手にやってくれる感じ。Azureの方がアルゴリズムや設定などのカスタマイズが可能。
・お金かかります?(執筆時点のデータ)
⇒ワークスペース使用料(約1000円/月)+実行時間で課金されます。実行時間はデータ量に比例するのでなんとも言えないです。実行時間での課金は約100円/時間です。
Azure内で作った分析器をポチってAPIとして使用することもできます!!ただ、これも実行時間に含まれるてこちらは約200円/時間、どう使っていくかの設計が重要だと思われます。
余力があれば、実際のAzure Machine Learningのハンズオンに近しい部分について書きたいとは思っています。。。
DevOpsハッカソン (Power BI編)
今回は「ビジネスの可視化」(Power BI) について書きます。(作業時間にしておよそ二日間)
■目的
サービスの利用状況などをグラフィカルに見える化することで、ビジネスを加速させる。
■Power BIとは
様々なデータソースから取得したデータを可視化するためのツール。
かなり強力です!!!
だいたいどこからでもデータを取ってこれます。
Azureはもちろん、Google Analyticsやエクセルファイル、Webページからも取って来れるのでだいたいのことは出来てしまいます。
■今回やったこと(概要)
Power BI Desktopを用いてAzureのDBやGAからデータを取得し、グラフを作成しました。そして、作ったレポートをoffice 365のPower BIへ発行し、同じoffice365グループのメンバに共有しました。
DBから取得したデータを用いてこんな感じのグラフを作成しました。
では簡単にグラフを作成して発行までの手順をまとめてみたいと思います。
■Power BI Desktopでデータの取得
サーバー名とデータベース名を入力します。
OKを押した後に認証情報などを入力します。
SQLステートメントにはクエリを直書きできるので、既存の集計クエリなどがある場合にはかなり便利です。もちろんテーブル単位での読み込みも可能です。
SQLを設定しない場合はデータベースごと読み込むので、後の画面で読み込むテーブルを選択します。
クエリは後からでも編集できるのでできるだけクエリにしてやった方が後でグラフにしやすい気がします。
webからも取得できるので、ここでは気象庁のページから週間天気予報を取得したいと思います。
http://www.jma.go.jp/jp/week/319.html
から東京周辺の週間天気を取得します。
上記のようにプレビューで取得するデータを確認できます。
編集を押すと、下記のクエリエディターが開いて、テーブルを整形できます。
列をある規則で分割したり、列ごと削除したり、行と列を入れ替えたり色々できます。
列のヘッダーにわかりやすい名前を設定しておくと後でグラフが作成しやすいです。
ウインドウの右側にステップが記録されているので、データが更新されたときにも同じ整形がされます。
「閉じて適用」を押し、次にメイン画面でグラフを作成します。
■グラフの作成
軸と値を選択すると簡単なグラフはすぐに作成できます。
注意する点としては、上記のクエリの編集において上部のメニューから気温などの値を10進数に変換しておくことです。そうしないとグラフがプロットできません。。。
筆マークをクリックするとビジュアルな部分についても編集できます。タイトルや文字の大きさなど設定できます。若干設定できる項目に限りがあるので、もう少し改善されると良いなと思います。
■リレーションシップの作成
次にリレーションシップの管理をやってみます。
今回は適当なページから独身女性の残業曜日比率を取得してきて、曜日をキーにリレーションを設定してみました。
リレーションを設定しておくと、例えば下記の図のように月曜日だけにデータをフィルタリングするみたいなことがグラフィカルに行えます。
天気と残業時間をリレーションしても何の意味もないですけどねw
グラフの作成が終わったら、PowerBIのsharepointに発行します。
サインインしておけば上部の発行ボタンでワンタッチで最新を反映できます。
Office 365のPower BIのページにいって、Power BI Desktopで作成したpbixファイルをアップロードすることでも更新できます。
■注意すべき点いろいろ
○proライセンスと普通のライセンスによってできることが少し違う
- 普通では更新頻度が1日1回だがproライセンスでは1日8回までスケジュールを組める。
- オンプレミス(誰かのローカルのパソコン含む)のデータセットを定期的に更新するにはproライセンスが必要→特にPower BI Desktopでローカルのエクセルを参照して作成し、office 365に発行すると、オンプレミスに繋いでいる扱いになるので注意が必要です。参照するエクセルファイルもoffice 365上にアップしてデータを取得するのが良いと思います。
○共有範囲の設定
- office 365の場合は同じ組織内のメンバーに共有は簡単だが、組織外のメンバーには共有できない。(たぶん)
○web上のPower BIやExcel for Power Query
- web上のPower BI はDesktop版よりできることが少ないのであまりお勧めできない。
- Excelのアドインで利用できるExcel for Power Queryでもほぼ同じようなことができるが、実際に使ってみたところかなりエクセルが重たくなって強制終了が多発してしまったので実用性はなんともいえない。。。ただ、ファイルを配布すればoffice365の環境がなくても各ローカルからデータを見れるという点においては便利かもしれない。
■まとめ
グラフ化がとにかく楽しい!!
そして簡単!!
無料でかなりのことができるのでかなり強力ですね。
そして一番の収穫は、すぐに業務で活かせたことですね~。