Jのブログ

人生の記録

【読了】「アポロ13」に学ぶITサービスマネジメント

ITIL資格取得のために、読みました。アポロ13をそもそも見たことなかったので、まずは映画観賞から。アポロ13の映画をベースに、ITILについて解説しているのでITILがどういうものかイメージしやすいと思います。実際アポロ13の時代にITILがなかったので、ITILに当てはめるとここはこうというような解説となっていますが、具体的な映画のシーンをベースにしているのでITILのよさがイメージできると思います。ITILって何?という方と、アポロ13が好きな人にはおすすめです。

【読了】売り上げ2億円の会社を10億円にする方法

社長がおすすめしてた本なので読みました。感想としては、現在の会社では当たり前のことが書かれていました。つまり、この本をベースにし、ここまで実践的に取り込めてるのはほんとにすごいなと思います。そして、社員は社長の30%の能力しかない、それを前提に仕組みや役割を考えるみたいなこと書かれてて、すみません!もっと精進します!と思いました。働きやすい=パフォーマンス出しやすい会社作るのベースになる、すごくいい内容の本だと思います。

メモ

  • 自分と比較し30%の能力でもまわせる仕組みを設計する必要がある
  • 職人ではなく工場化する、誰でも品質が高く提供できるような仕組みを作る
  • 一人芝居から劇団になる(演劇家、劇作家として社員が最高のパフォーマンスを出し、顧客に価値を提供できるように設計する
  • 一点突破できる価値をつくる
  • ビジネスモデル=マーケティング+マネジメント
  • 自社のゴールイメージと、そこまでのステップをわかりやすく提示すること
  • トライアンドエラーすること(自分がトライアンドエラーできてるのか?
  • チャレンジし続けること、新しいことにトライすること、さらに改善してチャレンジしていくことが重要
  • 商品力または営業力で企業は成長していく
  • まずは価格競争ではなく、魅力を作る
  • 店舗を工夫するなどして、会社の理念を伝える
  • 手法より、まずは何人集めるかなどゴールイメージを作る
  • 施策の頻度をキープし、定期的に顧客を集客できる方法を探す
  • コーチングとは答え言わずに、質問すること、壁打ち。ティーチングとは違う。
  • クレームが発生した時に現場に任せる
  • 顧客とはコミュニケーションの数が多い方がいい
  • アフターフォローとして、理念に基づいたフォローをする、ブランドを売る
  • ネガティブで縛るのではなく、自発的に行動できるような企業文化を作ることが、優れたマネジメント
  • どんな企業活動でも、結局は顧客とのコミュニケーションの集合、やりとりをするのは社員と顧客
  • ミッションは、日本語では使命。命を使ってまでやりたいこと
  • 理念を社員に絶え間なく伝えることで、価値観を感化し、現場での行動や判断をその価値観にそうようにする
  • 抽象論だけでなく、実際にあったことや、社員との会話、社員の行動を褒めるなど、いろいろな角度から伝える
  • 大手と競合しない世界で勝負する > 土俵を変える
  • 事業の方向性は、オンリーワン型(いかに捨てるか)、ディスカウント型(大手のみ)、地域密着型の3つしかない
  • 市場が鈍化し、業者が増え、淘汰される > サポートって超重要
  • 間接部門の人件費割合を70:30から75:25あたりを目指す、20%切ると高収益構造
  • 社員の状況をデータで見れるようにしておく
  • トップの社員をサポートする方が、会社全体の成長が早くなる(スタープレイヤーをモデルとする
  • まずは会社の説明ができるようにする、そしてより難易度の高い仕事をあたえる
  • ホームページの情報量がいい人材を呼ぶ、できれば財務面の情報も載せる(直接応募のメンバーが戦力化する
  • 急成長のタイミングは社長の半分は採用活動にあててもよい
  • 年商の1%以上を採用コストに使う、採用は経営者の最重要業務

【読了】本物のデータ分析力が身に付く本

読みました。初めてデータと向き合う人に、かなりおすすめの本でした。データ分析の設計から、データのクレンジング、平均、標準偏差ヒストグラム、散布図、標準偏差を使いこなすためのイメージがつきます。ワークが充実していて、かなり実践的だったのでおすすめです。

0章

  • 目的・過程、データ収集・データ信頼性確認、計算・結果、知識、説明、採用、効果
  • 「このデータ、うまく何か使えないか?」というのは難しい、手段と目的が逆転している
  • データありきではなく、目的ありきで考える、解決する手段を考える、問を考える、どのようなデータを分析するか考える

1章 データ分析を設計

  • 何のために何を知るのか?どのようなか過程でどのような範囲か?どのようなデータでどのような意味合いの数字を出すのか
  • 分析概念図
    • 問題を決める:何を解決したいか?
    • 評価軸の定義:何をもって解決とするか
    • 要因の列挙:評価に影響しそうな要因を整理
    • 要因の選択:分析に使う要因を選択

第2章 データの事前チェック

  • ヒストグラムで分布を確認し、外れ値を見る
  • データチェックのポイント
    • データの出所:5WH1、一次情報
    • データ全体の概要:サイズ、並び、意味合い、値の大きさ・単位、欠損値・外れ値、そのた目立つ特徴
    • 個別の値:欠損値、外れ値、データ方向、クレンジング
    • データの傾向:値の範囲、分布の形
  • データチェック
    • 欠損値:数値のみ選択、空・または空白を除外など方式があるの注意(データはいろいろ)
    • 外れ値(不正値)
      • ヒストグラム・散布図でチェック
      • 最大・最小でチェック
      • 外れ値の場所をチェック
      • 最大値と最小値は常にチェックする
  • データをクレンジング
    • 欠損値の判断
      • 欠損の理由の確認、理由の想像、想像できなければ除外(平均値でうめるなど、欠損が多いとデータそのものの信頼性が低下する)
    • 外れ値の判断
      • 外れている理由の確認、理由の想像、想像できなければ除外(平均値でうめるなど、欠損が多いとデータそのものの信頼性が低下する)
    • クレンジングは超重要、 分析の9割を占める場合もある
  • データの方向性
    • ポジティブなデータは値が大きくなるようにする
  • データ傾向のチェック
    • クレンジング後に再度可視化(ヒストグラム、散布図)
    • データ分布の確認

第3章 分析方法を学ぶ

  • 代表値(平均値、中央値、最頻値)とクロス集計による分析
  • 代表値:複数の数値を1つの数値で表す手法
    • 平均値:「量」の切り口(合計しデータ数で割る)
    • 中央値:「順位」の切り口(データをソートし真ん中のもの)
    • 最頻値:「頻度」の切り口(データ数が多い値)
    • 平均値を利用する前提
      • 数値データ(長さ、重さ、金額、時間など)、男1・女2みたいなのはNot数値データ
      • 分布の山が1つ
      • 分布対称である
      • 外れ値がないこと
      • 例:平均気温見て薄着でいったら寒かった(寒暖差が大きい場合のあるので最高気温・最低気温を見る)*エラーバー
    • 中央値を利用する前提
      • ある値が真ん中より上か下か知りたい(順位的に見たい)
      • 平均値より中央値の方が、分布の山に近い(極端に値が高い低いデータがある場合)
    • 最頻値を利用する前提
      • 本質的に名前や言葉を表す分類データ
      • 数値データを等しい間隔に区切って作った分類データ
      • (数値がばらばらのものには利用できない)
    • 代表値利用時の注意事項
      • 生データに比べれば情報が失われる
        • 立体的なものを一方向からみたものというイメージ
        • 特徴の中の1つと考える
  • クロス集計
    • 2つ以上の軸でデータを分析することをクロス集計(エクセルだとピボットテーブル)
    • クロス集計の効果
      • データを複数の要因から確認できる
      • 潜在的な要因の発見につながる

第4章 ケース実習

  • 分析設計
    • 目的:3つの新商品をうまく顧客に届けるためには?
      • そもそも商品を店舗で取り扱う?
      • どの商品がフィットする?
      • 各商品の属性と店舗の種類による過去の売り上げ状況を確認する
      • 男性向け 派手シャツをどの店舗に置く?
      • 女性向け かわいいでサインをどの店舗に置く?
      • 男女兼用 中性的なデザインをどの店舗に置く?
      • 各シャツの日、週、月別の売り上げ予測をして、在庫確保する
      • 各シャツの配置場所
    • 評価軸(2種類しかおけない、どの店舗にどう配置する?)
      • 店舗に来店する客層に合わせてチョイス(過去のデータから年齢、性別、購入しているタイプを分析する)
      • 各店舗における
        • 来店の客層は?(年齢、性別)
        • 顧客の嗜好性
        • いつ、何を、どれくらい購入しているか(曜日別、月別で見る

第5章 標準偏差

  • 標準偏差の使い所
    • データのばらつきがどれくらいあるか
    • 多様性や格差、不確実性、リスク、平均値の信頼性、品質管理などに使える
  • 外れ値抽出

第6章 グループ間の差の確からし

  • サンプルデータの抽出具合により、差が確かとは言い切れない
  • 分散分析の結果である危険率により全体として、差が確かか計算できる
  • 同じ個体か、そうでないかで計算式が異なる
    • 同じ人で、薬投与有無による計算(同じ人同士での結果で見る)
    • 薬を投与したグループ、薬を未投与のグループでの計算(グループでの結果として見る)
  • データの平均値、標準偏差、データ数から分散分析を行う

第7章 分析結果の受け止め方と伝え方

  • 評価軸がどれくらいあるか、様々な要因を広くあげて仮説する
  • バイアスに気を付ける
  • 仮説確証バイアス(思い込み)
    • 1つあたりを(予想)つけて分析してしまうと、客観的な分析ができなくなる
  • アンカリング(極端な数字)
    • 問題の中に含まれる数値で印象が変わる
    • 5000円という価格より、8000円が5000円になっている場合の購入判断
    • 10と25、10000と100025では印象が違う
  • フレーミング(言葉の表現)
    • 重い病気で手術の成功率は90%です、受けますか?
    • 重い病気で手術の失敗率は10%です、受けますか?
    • ポジティブ・ネガティブを入れ替えて考える
  • ライミング(情報の順序)
    • 先にポジティブな話をし、ネガティブな話は後半に少しする
    • 情報の提示順を逆にして判断が変わらないか試す
  • 擬似相関(偽の関係)
    • 走る速度が遅いと、給料があがるグラフ
    • 年齢があがると給料があがる、年齢があがると走る速度が遅くなるというのが原因
    • 相関関係がある別の要因により、走るのが遅いと給料があがるという構図になる
    • 相関関係があっても因果関係があるとは限らない
    • 頻繁に起こりやすい誤りなので常に注意
    • 複数の因果を比較し、適切なものを選択する
  • 結果表現の注意
    • データの集め方(データ数、ネガティブな選択肢が少ない、収集途中でやめるなど、条件が同じになっているか)
    • グラフの見せ方(基本0から始める、数字は大きく)
    • 言葉の表現の仕方(数値を相手に刺さる意味合いに、倍率など抽象的な数字だけだと伝わりにくい)

 

2020年の豊富

もう2020年2月中旬だけど、やっていくぞ

2019年振り返り

  • 6月から始めた糖質ダイエットにより、3ヶ月で5kgやせた
    • 忙しくなって、食べもの美味しい!😋 > +2kg
  • AWS認定試験11冠!
  • 部長になった
    • エンジニアリングから離れたけど、エンジニアとしても衰えないようにしたい
    • 部長は大変だけど、チームとか会社とか顧客にいいもっとサービス提供したいのでやっていく
    • ピープルマネジメント要素強めにだったけど、今後はビジネスリーダー要素強めで行きたい
    • ピープル部分はマネージャーに移譲していく
    • 国内に加え海外出張おおめになりそう
  • レザーバッグ買った
    • Herzのナレッジバッグとソフトダレスどちらもセミオーダー
    • キーファーノイのフラップバッグを買った、雨の日用
  • 釣り始めた
    • 会社の釣り部活動が活発に
    • 来年はいっぱい釣るぞ
  • 本執筆チャンス到来
    • 入社時に本書きたい!が現実のものに
    • 共著だけど、2冊みんなでわいわい書いた。嬉しみ半端ない
  • 韓国旅行いった
    • 飛行機ホテル代込み、2泊3日で2万、激安
    • 焼肉まじうまかった、まじうまかった
    • 韓国のサウナ激アツやった、整い半端ない
  • 本は12冊よんだ
    • 来年は20冊は読むぞ
    • 読んだけど普段使わないようなものは身になってない感あるけど、どっかでまた役立つ時がくるといいな
  • 英語できてない
    • 2020年こそ英語がんばるんだ...
  • ツール・ド・ちばが中止
    • エントリーしてたけど台風の影響で中止に
    • 仕方ないけど残念
    • また懲りずにエントリーしようかな

会社

  • 根幹となるビジネスを1つ立ち上げる
  • 部の自立化をさらに推進し、自分がいなくてもまわるようにする。自分はもっとビジネスにコミットする。
  • 自分のタスク整理と移譲
  • ファンになってもらいたい、感動してもらいたい、Think Big
  • 認定試験更新(DevOps/SAP)
  • ITIL取得
  • ブログ書けてないので書く

プライベート

  • キャンプ10回
    • キャンプ道具そろったのでいっぱいいくぞ!
    • 温泉にも行く
  • 釣り5回
  • TOEIC800点
  • 本10冊
  • 週3回運動(自転車/筋トレ/ジョギング)
    • 体力不足なので体力つける
    • スーツが似合う人かっこいい(つまりトニースターク

AWS認定 機械学習 合格しました

いやー、難しかったー。認定試験合格できたけど、奥が深いので実践できるかというと別かなって印象です。10年インフラエンジニアとしてやってきましたが、統計学とかの知識も必要だったり、機械学習アルゴリズムの理解、アルゴリズムの評価、トレーニングデータのチューニングなどなど、今まで経験したことがないジャンルだったので言葉もわからないし、考え方もわからないって感じで、新卒時代を彷彿させる時間を過ごしました。でも、これが楽しんですよね。エンジニアだし!新しいジャンルのことに触れる機会を得られてかなりいい試験でした。もっと実践でやってきたい。

やったこと

調査したこと

教師あり学習

線形回帰

特徴量に対し、方程式(モデル)を導く。傾きとか接点とか。次元が増えるとモデルが複雑化する。トレーニングデータにあわせすぎると、未知のデータに対する検証ができなくなる。これを過学習という。過学習を防ぐには、モデルをシンプル化する正則化を用いて汎化性能を向上させる。

正則化

Lasso回帰とRide回帰

ロジスティック回帰

ある事象が起こる確率を出す、2値分類

サポートベクトルマシン

分類と回帰、どちらにも利用可 直線、曲線、円など複雑なデータにも対応 線形カーネル、シグモイドカーネル、多項カーネル、RBFカーネルなど様々な形で分類できるカーネルがある

ナイーブベイズ

自然言語における分類。例えば、スパムメール。確率を出す。 文章をカテゴリに分けたり

ランダムフォレスト

複数のモデルを束ねて高性能のモデルを作成する。回帰、分類どちらにも適用できる。決定木を利用し、複数の弱学習機を組み合わせる。森の数を深くしても過学習がなく途中で収束する

ニューラルネットワーク

回帰、分類に使えるが応用では分類に使われることが多い

教師なし学習

PCA(Principal Component Analysis)

歴史が深い主成分分析。例えば変数が100個あるデータを分析する場合、そのまま分析するよりも、変数を減らして例えば5個にした方が、後の分析が楽になる。減らす方法は2通り。1つは、重要なデータのみを選択する、もう一つは元データから新たな変数を生成する。主成分分析は、新たな変数を生成することでデータの変数を削減する方式。高次元データを低次元データとして扱う。

LSA(Latent Semantiv Analysis)

次元削減手法として、情報検索の分野で活躍 LSAによって、大量の文書データから単語が持つ潜在的な関連性を見つけ出す。通常は単語に対してindexwをつけることで検索していた。

NMF

LDA

K-means法

混合ガウス分布

LLE

t-SNE

分類における評価法

f:id:iron_breaker:20200125083127j:plain
混合行列

  • 混合行列
  • 緑:正解率、正確さ(Accuracy)> TN+TP/全体。予測値がどれくらい正解しているか。
  • 黄:適合率、精度(Precision)> TP/FP+TP。1と予測したものがどれくらい正解しているか。例えば、20歳以上のコンテンツ判定で利用した場合、適合率が低いと子供でも見ていいコンテンツが20歳以上と判定されているということ。
  • 赤:再現性(Recall)> TP/FN+TP。実際のデータに対して、どれくらい正解しているか。この値が低いと、20歳以上コンテンツでも通常コンテンツと判定されてしまう。適合率と再現率は相関関係にあるので、どっちかの正解率をあげるともう一方の正解率がさがる。あいまいなものを20歳以上のコンテンツと判定する(再現性率を上げる)と、誤って通常のコンテンツも含まれてしまうイメージ。つまり適合率がさがる。
  • F値:2x(適合率x再現率)/(適合率+再現率)。適合率と再現率のバランスをみたいときに利用。
  • 予測確率:分類結果に何%の確率であっているかを出す
  • ROC曲線AUC: ポジティブデータ数とネガティブデータ数にかなり差がある場合、適正なモデルにならない。不均衡データの指標としてAUCを用いる

回帰における評価

  • 平均二乗誤差:実際の値と予測値の差がどれだけあるか。誤差の二条を全て計算し平均をとったもの。この誤差が少ないほど予測が正しい。
  • 決定係数:平均二乗誤差を使って学習したモデルの予測の当てはまり度を示す数値。R2と言われている係数。最大で1、この数値が誤差が一番ない状態。

バッチサイズ

  • ディープラーニングでは、内部的にデータを分けて学習する
  • 異常値の影響を少なくするため
  • 習慣として2のN乗の値が利用される

イテレーション

  • バッチサイズが決まれば自然と決まる
  • 1000件データあり、バッチサイズ200とするとイテレーションは5

エポック数

    1. バッチサイズに従い、データを分割
    1. 分割データ数分、学習を行う
  • 1と2でワンセット。ワンセットをエポックという。
  • 損失関数(コスト関数)が収束するまで、エポックを繰り返す
  • ただし、収束しすぎると過学習がおこる

損失関数

  • 予測と実際の直のずれを表す
  • 直が小さいほど正確なモデル
  • 平均二乗誤差など
  • バッチサイズ: 大きくすると汎化性能が落ちる
  • 学習率: バッチサイズに合わせた最適な学習率を選択。バッチサイズと学習率は比例の関係にあるので、バッチサイズを下げたら学習率も下げる

サンプリング

  • クラス比率が不均衡の場合、データを増やしたり減らしたりしてバランスをとる
  • オーバーサンプリング: 件数が少ないデータを増やす
  • アンダーサンプリング: 件数が多いデータを減らす

不均衡データの学習

  • 目的変数の分布に大きな偏りがあるデータ
  • 滅多に発生しないデータにどうやって対応するモデルを作るのか?
  • 不均衡データでは正解率を上げるのではなく、再現性を上げることが多い(例えば、データが偏っているのでTrueと全て予測すれば正解率があがる)。でも、実際はそうじゃい。
  • アプローチ
    • データレベル:オーバーサンプリング(少ないラベルデータを増やす)またはアンダーサンプリング(多いラベルデータを減らす)を行う。オーバーサンプリングの代表的な手法がSMOTE
    • コスト思考型学習:損失関数にて、誤分類したときの重み付けを多くする
    • 異常検知:教師なし学習で対応する

欠損値データの学習

  • 欠損の種類
    • ランダム欠損
    • 観測データに依存する欠損
    • 欠損データに依存する欠損
  • データ量が単純に多い場合:削除または固定値を入れる
  • データ量が少ない場合:平均値または頻繁値を入れる、平均からばらつきを考慮して値を入れる
  • 多重代入法:欠損値を推定して入れる

ハイパーパラメータ探索

  • ベイズ最適化:形状がわからない関数(ブラックボックス関数)の最大値を求める手法。グリッドサーチより軽量。どこのパラメータが一番精度があがるかを、結果を考慮し探索していく
  • グリッドサーチ: グリッドを作り、交点のパラメータをすべて組みあせて、一つずつ試す。計算数が多くなるので時間がかかる。

モデルの過学習

  • 学習データでの予測は成功、未学習のデータに対する予測がだめ > 学習しすぎている過学習状態
  • 学習データが少ない、変数が多い、パラメータが大きいことが原因
  • 汎化性能が重要
  • 解決策
    • 学習データと検証データに分割する(7:3)学習データ多い6:4、学習データ少ない8:2など工夫する
      • 交差検証(クロスバリデーション):データセット全体に対して、学習用データ・検証用データのパターンを複数用意し、かたよったモデルにならないようにする
    • ベイズ最適化。最大値になる確率や期待値を定義しパラメータを予測する。グリッドサーチに比べてコストが少ない。学習データを増やすの
    • 特徴量削減
    • L1正則化: 変数を減らす lasso
    • L2正則化: 過学習を防ぐ ridge 重みの二乗を足す。変数は減らないので、変数多い場合はモデルが複雑になる
    • アーリーストッピング
    • アンサンブル学習法
    • 特徴量と次元は同義
    • 次元の呪い:特徴量が多いと効率的に学習させるのが難しい 活性化関数
  • ニューラルネットワークにおいて、線の形を司る関数。
  • シグモイド: s字 2値分類
  • ソフトマックス: 二乗曲線 多項分類
  • ReLU: 0以下は0 、0より大きいと入力。プラス値のみを、利用するとき
  • 恒等関数: 入力をそのまま。何も変更しない場合

RecordIO

  • mxnetで利用するデータセットのフォーマット
  • jpg,pngをバイナリに変換
  • データと一緒にラベルも管理できる
  • ディスク容量削減、連続読み取り可能、分散設定が可能になる

学習率

  • 学習するときに動かす最適化関数のパラメータの割合
  • 学習率を低くすると、ちょっとずつ動かすので回数こなす必要あるので時間がかかる。ただし、最適値を見つけやすくなる。
  • 学習率を高くすると、大きく動かすので回数こなさなくても大丈夫。ただし、大まかなため最適値を見逃しやすくなる。

次元削減

  • 説明変数を減らす
  • 例えば体重と身長を二次元でプロット。これを一次元にしたとき、直線は体格をあらわす。次元削減しても体格という軸で見れる。
  • データ圧縮、データの可視化
  • 手法としてPCA(主成分分析)がある

SageMaker組み込みモデル

自然言語処理

BlazingText(Word2Vec)

  • 単語ベクトルを生成し、テキストを分類
  • 似た意味の単語であれば、似たようなベクトルになる
  • 教師あり
  • 用途:単語分類、文章の意味を解析、感情分析、エンティティ認識、機械翻訳など

Sequence to Sequence

潜在的ディリクレ配分(LDA)

  • トピックモデル
  • 教師なし
  • ドキュメントがどういうトピックで構成されているかを調べる
  • 特徴は単語の出現回数、カテゴリはトピック
  • 類似の単語が使われてるドキュメントを分析できる
  • 文書に限らず、さまざまな離散データに隠された潜在的トピックを推定する(画像、音楽情報処理、SNS解析など)

ニューラルトピックモデル(NTM)

  • 教師なし
  • ドキュメントのトピックを抽出
  • ニューラルネットワークを利用
  • 文章分類機の前段で利用
  • 単語ベースのモデル(LDA)よりも、優れたパフォーマンスが期待される

コンピュータビジョン

イメージ分類

オブジェクト検出(SSD: Single Shot MultiBox Detector)

セマンティックセグメンテーション

  • セマンティックとは意味、セグメントの意味を理解する
  • コンピュータビジョン、ピクセルレベルのアプローチ
  • 自動運転、医療用画像診断、ロボットセンシングなど
  • イメージ分類アルゴリズムは、イメージ全体を分析する教師あり
  • オブジェクト検出アルゴリズムは、イメージ内のオブジェクトを全て検出し分類する教師あり。長方形の境界ボックスで示す
  • セマンティックセグメンテーションは、イメージ内の全てのピクセルを分類。オブジェクトの形状を検出。

分類・回帰ハイブリッド

XGBoost

  • 教師あり学習
  • 回帰、分類、ランキングに対応
  • アワビの年齢予測(回帰
  • ハイパーパラメータが豊富
  • ハイパーパラメータ、分類はロジスティック、回帰はライナーかっこいいので線形)

Object2Vec

  • 高次元ベクトルを低次元化し、類似したオブジェクトを近距離に配置する手法。物事の関係性を計算する
  • 動画のレコメンド、ドキュメント分類、文章類似性、自然言語理解、情報検索
  • 分類、回帰に使える
  • 教師あり学習

線形学習

因数分解

  • 分類、回帰
  • 教師あり
  • 高次元データの相互作用を経済的に予測するようにチューニングされている
  • 特定のカテゴリの広告を特定のカテゴリのwebページに配置した時のクリック率の予測

k近傍法(k-NN)

  • 距離が近いデータをk個集め、多数決から目的値を求める。学習にあたる部分がない
  • レコメンドなどで利用される
  • 分類、回帰

データ解析

主成分分析法(PCA)

  • 教師なし
  • データを選択、または新しいデータを作ることで次元を減らす
  • 10科目あるテストで、学生の能力を分析するなどデータ解析に利用
  • 表形式のデータを利用する
  • 2つのモード
    • regular: 疎データと標準的な数の観測および特徴を備えたデータセット
    • randomized: 多数の観測および特徴の両方を備えたデータセット

時系列データの予測

DeepAR

異常検知

IP Insights

  • 教師なし
  • IPv4の使用パターンを学習する
  • ipv4、ユーザーidやアカウントidをキャプチャし、例えば異常なipからのログインを検知
  • 履歴データを取り込みモデルを作る

ランダムカットフォレスト(RCF)

  • 異常なデータポイントを検出する、異常値スコアを返す
  • 教師なしアルゴリズム
  • 時系列データのスパイク、周期性の中断、分類できないデータポイントなどを検出
  • 異常値とは、外れ値建築、変化検知、異常部位検知
  • 異常購入、銀行へのサイバー侵入、MRIスキャンの異常、不正な保険請求、異常な機械動作、ネットワーク侵入検知など

K-Means

  • クラスタリング
  • 教師なし学習
  • 購入履歴や行動データから顧客を分類、類似画像の分類、不正取引検知、ネットワーク侵入検知、嵐を予測するなど収集データの異常検知

Sagnaker 運用

パイプモード

  • s3からストリーミング
  • EBSの消費が少ない
  • 読み込みが高速

ファイルモード

  • EBSにデータをダウンロードしてから処理
  • 容量を消費する
  • 読み込みが遅い

パイプラインモード

  • 前処理を含めた形でモデル作成まで行う
  • 処理A用のコンテナ、処理B用のコンテナ、モデル作成用のコンテナと順番に実行する
  • パイプラインは同じEC2上で処理するのでローカルデータを利用するため、処理が早くなる
  • record io形式だとさらに高速

デプロイ方式

  • 永続エンドポイント:リアルタイム推論。deployメソッド。APIで取得。
  • バッチ変換:データセット全体を推論。create_transform_jobメソッド。結果はS3に保存。
  • ローカルモード: オンプレミスでコンテナを起動し、学習や推論を行う

Amazon ML

コンセプト

  • データソース: データそのものではなく、s3への参照アドレスが保存
  • MLモデル:バイナリ分類、複数クラス分類、回帰の3種類
  • 評価
    • AUC: 不均衡データの指標
    • F1: 正確度と再現率のバランスを見る
    • RMSE: 二乗平均平方根誤差、回帰に対するパフォーマンス評価
    • カットオフ: 数値予測スコアを0と1に丸める
    • Accuracy: 精度。全体に対する予測正解率
    • リコール: 実際の正の合計数に対し、正と予測した割合
  • バッチ予測
    • 全てを一度に予測。リアルタイム性の要件がないものに適用
  • リアルタイム予測

データの分割

  • レーニングデータとテストデータに分ける
  • データの事前分割:自分で好きに分割する
  • シーケンシャル分割:時系列データは順番に取得する
  • ランダム分割:カテゴリ別のデータは、カテゴリごとにランダムに取得する

モデル

  • バイナリ分類(ロジスティック回帰):スパムメールか?購入するか?ボットレビューか?
  • 複数クラス分類(ロジスティック回帰):書籍、映画、衣類か?コメディ、スリラー、ドキュメンタリーか?
  • 回帰モデル(線形回帰):明日の温度は?販売予測は?どれくらいの値段で売れる?

データ変換

  • Nグラム変換:N=1にすると、単語分割 {"I", "really", "enjoyed", "reading", "this", "book"}
  • 直角のスパースなバイグラム(OSB)変換:バイグラム変換(N=2)に変わるもの
  • 小文字変換:文字を小文字にする
  • 句読点除去変換:N=1グラム変換を行い、-や!などを削除する
  • 四分位ビニング変換:
  • 正則化変換:異常値をならす
  • デカルト積変換:

AWS認定 機械学習サンプル問題の日本語メモ

認定試験受けて無事合格しました。サンプル問題が英語だったので、日本語翻訳したのでここに置いておきます。

aws.amazon.com

MLSサンプル問題

1)a Machine Learningチームには、Amazon S3にいくつかの大きなCSVデータセットがあります。歴史的に、構築されたモデル Amazon SageMaker Linear Learnerアルゴリズムを使用すると、同様のサイズのデータ​​セットのトレーニングに数時間かかりました。チームのリーダーはトレーニングプロセスを加速する必要があります。 機械学習スペシャリストは、この懸念に対処するために何ができますか?

  1. Amazon SageMaker Pipeモードを使用します。
  2. Amazon Machine Learningを使用してモデルをトレーニングします。
  3. Amazon Kinesisを使用して、データをAmazon SageMakerにストリーミングします。
  4. AWS Glueを使用して、CSVデータセットJSON形式に変換します。

2)a ユニグラムとバイグラムの両方を使用する用語頻度-逆文書頻度(tf-idf)マトリックスは、次の2つの文で構成されるテキストコーパスから構築されます。 1.以下の番号に電話してください。 2.電話しないでください。 tf–idf行列の次元は何ですか?

A.(2、16) B.(2、8) C(2、10) D.(8、10)

3)b 会社は、Amazon S3に保存されているすべてのデータセットを管理するシステムをセットアップしています。会社は、データでの変換ジョブの実行を自動化し、データセットに関するメタデータのカタログを維持したいと考えています。このソリューションでは、最小限のセットアップとメンテナンスが必要です。 会社が目標を達成できるソリューションはどれですか?

  1. Apache HiveがインストールされたAmazon EMRクラスターを作成します。次に、Hiveメタストアとスクリプトを作成して、スケジュールに従って変換ジョブを実行します。
  2. AWS Glueクローラーを作成して、AWS Glueデータカタログに入力します。次に、AWS Glue ETLを作成します ジョブ、およびデータ変換ジョブのスケジュールを設定します。
  3. Apache SparkがインストールされたAmazon EMRクラスターを作成します。次に、Apache Hiveメタストアを作成します また、スケジュールに従って変換ジョブを実行するスクリプト。 D.データを変換するAWS Data Pipelineを作成します。次に、Apache Hiveメタストアとスクリプトを作成して、スケジュールに従って変換ジョブを実行します。

4)b データサイエンティストは、トレーニングプロセス中に複数のパラメーターを変更することでモデルの最適化に取り組んでいます。データサイエンティストは、同一のパラメーターを使用した複数の実行中に、損失関数が異なるが安定した値に収束することを観察しています。 データサイエンティストは、トレーニングプロセスを改善するために何をすべきですか?

A.学習率を上げます。バッチサイズを同じに保ちます。 B.バッチサイズを小さくします。学習率を下げます。 C.バッチサイズを同じに保ちます。学習率を下げます。 D.学習率を変更しないでください。バッチサイズを増やします。

5)d データサイエンティストは、さまざまなバイナリ分類モデルを評価しています。偽陽性の結果は、偽陰性の結果の5倍(ビジネスの観点から)高くなります。 モデルは、次の基準に基づいて評価する必要があります。 1)80%以上のリコール率が必要 2)10%以下の誤検知率が必要 3)ビジネスコストを最小限に抑える必要がある各バイナリ分類モデルを作成した後、データサイエンティストは対応する混同マトリックスを生成します。 どの混同マトリックスは、要件を満たすモデルを表しますか?

  1. TN = 91、FP = 9 FN = 22、TP = 78
  2. TN = 99、FP = 1 FN = 21、TP = 79
  3. TN = 96、FP = 4 FN = 10、TP = 90
  4. TN = 98、FP = 2 FN = 18、TP = 82

6)b データサイエンティストは、ロジスティック回帰を使用して不正検出モデルを構築します。モデルの精度は99%ですが、不正事例の90%はモデルによって検出されません。 モデルが詐欺事件の10%以上を検出するのに役立つアクションは何ですか?

A.アンダーサンプリングを使用してデータセットのバランスをとる B.クラス確率のしきい値を下げる C.正則化を使用して過剰適合を減らす D.オーバーサンプリングを使用してデータセットのバランスをとる

7)c 企業は、不正行為検出モデルの構築に関心を持っています。現在、データサイエンティストは、不正事例の数が少ないため、十分な量の情報を持っていません。有効な不正事例の最大数を検出する可能性が最も高いのはどの方法ですか?

A.ブートストラップを使用したオーバーサンプリング B.アンダーサンプリング C. SMOTEを使用したオーバーサンプリング D.クラスの重量調整

8)d 機械学習エンジニアは、Amazon SageMaker Linear Learnerアルゴリズムを使用して、教師あり学習タスクのデータフレームを準備しています。 MLエンジニアは、ターゲットラベルクラスが 非常に不均衡で複数の機能列に欠損値が含まれています。データフレーム全体の欠損値の割合は5%未満です。 MLエンジニアは、欠損値によるバイアスを最小限に抑えるために何をすべきですか?

A.各欠損値を、同じ行の非欠損値の平均値または中央値に置き換えます。 B.欠損値がデータの5%未満を表すため、欠損値を含む観測値を削除します。 C.各欠損値を、同じ列の欠損値以外の平均値または中央値で置き換えます。 D.各機能について、他の機能に基づく教師あり学習を使用して欠損値を近似します。

9)b 企業は、決定木を使用して、製品に関する顧客のコメントを収集し、安全または安全でないと評価しました。トレーニング データセットには次の機能があります:id、日付、完全なレビュー、完全なレビューの要約、およびバイナリのセーフ/アンセーフタグ。トレーニング中に、機能が欠落しているデータサンプルは削除されました。いくつかの例では、テストセットに完全なレビューテキストフィールドがないことがわかりました。 このユースケースでは、機能が欠落しているテストデータサンプルに対処するための最も効果的なアクションコースはどれですか?

A.完全なレビューテキストフィールドが欠落しているテストサンプルをドロップし、テストセットを実行します。 B.要約テキストフィールドをコピーし、それらを使用して不足している完全なレビューテキストフィールドに入力し、テストセットを実行します。 C.決定木よりも欠損データをうまく処理するアルゴリズムを使用します。 D.欠落データのあるフィールドに入力する合成データを生成し、テストセットを実行します。

10)d 人間のレビューは費用がかかり、エラーが発生しやすいため、保険会社はクレームコンプライアンスレビューを自動化する必要があります。同社には多数のクレームとコンプライアンスラベルがあります。 各クレームは英語のいくつかの文で構成され、その多くには関連する複雑な文が含まれています 情報。経営陣は、Amazon SageMaker組み込みアルゴリズムを使用して、各クレームを読み取り、クレームが準拠しているかどうかを予測するようにトレーニングできる機械学習監視モデルを設計したいと考えています。 ダウンストリームの監視タスクの入力として使用されるクレームから機能を抽出するには、どのアプローチを使用する必要がありますか?

A.データセット全体のクレームからトークンの辞書を取得します。トレーニングセットの各クレームで見つかったトークンにワンホットエンコーディングを適用します。派生フィーチャスペースを入力としてAmazon SageMakerの組み込みの監視付き学習アルゴリズムに送信します。 B. Word2VecモードでAmazon SageMaker BlazingTextをトレーニングセットのクレームに適用します。派生フィーチャスペースを、ダウンストリームの監視対象タスクの入力として送信します。 C.トレーニングセットのラベル付きクレームに分類モードのAmazon SageMaker BlazingTextを適用して、準拠ラベルと非準拠ラベルにそれぞれ対応するクレームの機能を導出します。 D. Amazon SageMaker Object2Vecをトレーニングセットのクレームに適用します。派生フィーチャスペースを、ダウンストリームの監視対象タスクの入力として送信します。

回答

1) A – Amazon SageMaker Pipeモードは、データを直接コンテナにストリーミングします。これにより、トレーニングジョブのパフォーマンスが向上します。 (サポート情報については、このリンクを参照してください。)パイプモードでは、トレーニングジョブはAmazon S3から直接データをストリーミングします。ストリーミングにより、トレーニングジョブの開始時間が短縮され、スループットが向上します。パイプモードでは、トレーニンインスタンスAmazon EBSボリュームのサイズも削減します。 Bはこのシナリオには適用されません。 Cはストリーミング取り込みソリューションですが、このシナリオには適用できません。 Dはデータ構造を変換します。

2) A – 2つの文、8つのユニークなユニグラム、8つのユニークなバイグラムがあるため、結果は(2,16)になります。の フレーズは「下の番号に電話してください」と「私たちに電話しないでください」です。それぞれの単語(ユニグラム)は、「お願い」、「電話」、「the」、「番号」、「下」、「do」、「ユニークなバイグラムは、「お電話ください」、「お電話ください」、「番号」、「下の番号」、「お願い」、「しない」、「電話しない」、「 tf–idfベクトライザーについては、このリンクで説明しています。

3) B – AWS Glueは、サーバーレスであり、インフラストラクチャの管理を必要としないため、セットアップとメンテナンスの必要量が最も少ないため、正解です。サポート情報については、このリンクを参照してください。 A、C、およびDはすべて問題を解決できるソリューションですが、構成にはより多くの手順が必要であり、実行と保守にはより高い運用オーバーヘッドが必要です

4) B –損失関数は非常に曲線的であり、トレーニングが行き詰まっている複数の極小値を持っている可能性が最も高い。バッチサイズを小さくすると、データサイエンティストは確率的にローカルミニマルサドルから抜け出すことができます。学習率を下げると、グローバル損失関数の最小値をオーバーシュートできなくなります。説明については、このリンクのペーパーを参照してください。

5) D – The following calculations are required:

6) B –クラスの確率のしきい値を下げると、モデルの感度が高くなるため、より多くのケースをポジティブクラスとしてマークします。この場合は不正です。これにより、不正検出の可能性が高まります。ただし、精度を下げるという代償が伴います。これについては、このリンクのホワイトペーパーの「ディスカッション」セクションで説明しています。

7) C –完全に設定されていないデータセットの場合、Synthetic Minority Over-sampling Technique(SMOTE)は、合成データポイントをマイノリティクラスに追加することにより、新しい情報を追加します。このシナリオでは、この手法が最も効果的です。サポート情報については、このリンクのセクション4.2を参照してください。

8) D –教師あり学習を使用して、他の特徴の値に基づいて欠損値を予測します。教師あり学習アプローチによってパフォーマンスが異なる場合がありますが、適切に実装された教師あり学習アプローチでは、応答AおよびCで提案されているように、平均または中央値近似と同等以上の近​​似を提供する必要があります。欠損値の代入に適用される教師あり学習はアクティブなフィールドです研究の。例については、このリンクを参照してください。

9) B –この場合、完全なレビューの要約には通常、レビュー全体の最も記述的なフレーズが含まれており、欠落している完全なレビューテキストフィールドの有効な標準入力です。サポート情報については、このリンクの1627ページ、およびこのリンクとこのリンクを参照してください。

10) D – Amazon SageMaker Object2Vecは、WordsのWord2Vec埋め込み技術を、文章や段落などのより複雑なオブジェクトに一般化します。教師あり学習タスクは、ラベルが存在するクレーム全体のレベルにあり、単語レベルで使用可能なラベルがないため、Word2Vecの代わりにObject2Vecを使用する必要があります。サポート情報については、このリンクとこのリンクを参照してください。

【学習メモ】AWS 認定 Alexa スキルビルダー

無事合格しました。何をインプットしてたかを残しておきます。 まずは、試験要項をみて出題範囲と参考資料がのってるのでそれをインプットとします。これで、ほぼ合格です!w 一番参考になったのがAlexa 道場というYoutube動画ですね。コレ見ながら実際に手を動かすことで、だいたい把握できます。あとは、細かい仕様をドキュメントでみたり、模擬試験受けたり、Developers.IO見たり、手を動かしたりで合格できました。試験勉強は多分2週間くらいで、合計20時間くらいかな?あとはAWSの知識としてLambdaだったり、DynamoDBだったり、IAMだったり、CloudFrontの知識があった方がいいですね。

基本

Alexa道場

  • Alexa道場の動画を全部みつつ、実際に手を動かす
  • 基礎ができるので、あとはDevelopers.IO見たり、Alexa開発ドキュメント読んだり、ひたすら手を動かしていろいろ触ってみる

スキルタイプ

  • カスタムスキル:例としてはWebサービスの情報を検索、商品を注文、対話ゲームなど、なんでも。画面での操作も作れる。
  • スマートホームスキル:照明、ドアロック、カメラ、テレビなど、スマートホーム対応デバイスを制御。機能制限されているが音声UIを独自に作成不要で開発が簡単。Alexa、リビングの照明を付けてでリクエストができる。特定のインテントに対するLambda関数を作成する。呼び出し名を言う必要がない。
  • ビデオスキル:ビデオサービスの対応。映画再生、テレビ検索、チャネル切り替え。呼び出し名を言う必要がない。
  • フラッシュブリーフィング:ニュースなどのアプリを起動せずとも利用できるスキル。ニュースを教えて、だけでスキルが起動できる(起動の優先順位は、スキルを有効化した順?)。開発者はコンテンツフィードを作成するだけ。呼び出し名を言う必要がない。
  • 音楽スキル:音楽をストリーミング再生するスキル。開発者はコンテンツの再生と検索や検索結果を表示するスキルを開発するだけ。
  • リストスキル:リスト項目の追加、削除、更新。開発者はリストイベントを受信するエンドポイント、応答するハンドラーを開発する。スキル名でまるまるを再生してという必要がある。

ホスティングタイプ

  • Lambda、S3、CloudWatch
  • 独自システム

開発要件

  • カスタムスキル:LambdaまたはHTTPSWebサービス。画像、オーディオファイル、ビデオファイルのホスト、S3が楽。テスト用のAlexaデバイス、シュミレータでテストも可。ただし、シュミレータでは対話型に対応していないため、デバイスが必要。
  • スマートホームスキル:制御可能なデバイス、Lambda(必須)。テスト用のAlexaデバイス、なければシミュレータでテスト可能。
  • ビデオスキル:ビデオサービスプロバイダ。Lambda(必須)。テスト用のAlexaデバイス。シミュレータは使えない。
  • フラッシュブリーフィングスキル:RSSまたはJSON
  • 音楽スキル:Alexaデバイス、音楽ストリーミングサービス、音楽カタログのメタデータ。Lambda(必須)。
  • 共通:Node.js, Java, Python, C#, Go

カスタムスキル

スマートホームスキル

フラッシュブリーフィングスキル

  • RSSのURLを指定するだけで、スキル完成
  • スキルを有効にすると「今日の」ニュースは?」でRSSの内容を読んでくれる

音楽スキル

  • 必要なインテント
    • 必須:AMAZON.ResumeIntent、AMAZON.PauseIntent
    • 再生開始 > LaunchRequest、PlayAudioIntent
    • 次へ、戻す > AMAZON.NextIntent、AMAZON.PreviousIntent
    • 停止 > AMAZON.CancelIntent、AMAZON.StopIntent、AMAZON.PauseIntent
    • 再開 > AMAZON.ResumeIntent
    • ループ、シャッフル > AMAZON.StartOverIntent、AMAZON.LoopOnIntent、AMAZON.LoopOffIntent、AMAZON.ShuffleOnIntent、AMAZON.ShuffleOffIntent
  • Playback系のリクエス
    • リクエスト受けるだけ。speakなどの応答はできない。ログ残すなどの処理を入れる。
    • AudioPlayer.PlaybackStarted、AudioPlayer.PlaybackFinished、AudioPlayer.PlaybackStopped
    • AudioPlayer.PlaybackNearlyFinished > 終了間近に次のキューを書き換えるなどする
    • AudioPlayer.PlaybackFailed > エラーなので再度再生させる
  • 画面操作によるリクエス
    • PlaybackController.PlayCommandIssued、PlaybackController.NextCommandIssued、PlaybackController.PreviousCommandIssued、PlaybackController.PauseCommandIssued SSML
  • phoneme > 歌詞
    • 発音を指定する(人によって異なる場合のものでも指定できる)
    • 国産音声記号(IPA),X−SAMPAフォーマットで指定
  • prosody > メロディ
    • 音量、高さ、速さを変更する
  • emphasis > 強弱
    • 強調をlevel(strong, moderate, reduced)で指定する
  • say-as
    • 解釈方法を指定
    • 文字ごと、数値、分数、単位、日付、時間、電話番号、住所、感嘆、ピー
  • w
    • Say-asと類似した働き
    • Aliasとして動詞、過去分詞、名詞を指定
  • amazon:domain
    • 英語のみ対応
    • コンテキストにあった発話
    • music、newsを指定できる。
  • amazon:effect
    • ささやき声
    • whisperedを指定できる
  • amazon:emotion
    • 感情表現
    • 感情(name):excited, disappointed
    • 感情の強さ(intensity):low, medium, high
  • audio
    • mp3のURLを指定
    • 240秒以内、48kbps
    • HTTPS(自己署名はNG)
    • HTLSも指定可能
  • break
    • 休止を入れる
    • time(s, ms), strength(medium, strongなど)で指定する
  • lang
    • 言語を指定する
  • p
    • 段落。間をおく。
  • s
    • センテンス
    • 文の間に一時停止が入る
  • speak
    • SSMLを利用するときのタグ
  • sub
    • 単語のを別のフレーズで発音
    • aliasで指定
    • 例:私が好きな化学元素はAlです。 > Alをアルミニウムと発音。
  • voice
    • 声を指定できる。日本だと、観月さん、匠さん

インテント履歴

  • 1日10人以上が利用した場合に、履歴が表示される
  • 取得できる情報
    • 発話
    • 信頼度:高中低でインテントの信頼度。低や中を減らすようにインテントのサンプル発話を調整する
    • 解決されたインテント:実際に振り分けられたインテント
    • 解決されたスロット:解決されたスロットと値
    • ダイアログ:ダイアログモードの場合の欄。情報を引き出すスロット、確認スロット、確認インテントいづれ
    • 対話モデルタイプ:ONE_SHOT(スキル呼び出しと同うじにインテントへ)、MODAL(スキル呼び出し後の対話でインテントへ)

ダイアログモード(スロットの入力を委譲する)

  • スロットについてLambda側ではなく、モデル側で入力を完結する
  • Lambdaのコードがシンプルになる(スロットが入力された前提でコードを書けば良い)
  • スロットに対し
    • 必須の値か
    • 値のバリデーション(以上、以下など)
    • 再入力を促したり、入力内容を確認したりできる
  • ダイアログモードのリクエス
    • dialogStateがSTARTED、IN_PROGRESS、COMPLETEDのいづれ
    • COMPLETEDで無ければ、addDelegateDirective()でレスポンスを返す
    • COMPLETEDの場合は、スロットが埋まった状態になる。処理を任意の処理を実施する。
    • ディレクティブ
      • Dialog.Delegate:フロント側にスロットのやりとりを委譲する
      • Dialog.ElicitSlot:特定のスロット値についてユーザーに尋ねる。スロット名を指定する。
      • Dialog.ConfirmSlot:特定のスロットの値を確認する。スロット名を指定する。
      • Dialog.ConfirmIntent:インテントに提供したすべての情報をユーザーに確認する。スロットの指定はしない。speakで全スロットの値を確認する。

アノテーションセット

  • Alexaスキルの自然言語理解(NLU)モデルの精度を評価するためのツール
  • 予想される発話をデータ(インデント、スロット)をデータファイル化 > アノテーションセット
  • NLU評価ツールを使って、想定通りスキルのモデルが動作しているかテストを行う
  • モデル変更しても過去できていたことができない、などのテストとしても利用できる
  • 評価したケース数と評価結果を一覧で見ることができる、これは便利

レポート

  • 概要:セッション数、発話数、呼ばれたインデントの割合など確認できる
  • カスタマー:アクセス数
  • セッション:セッション数、セッションに対する成功、失敗、応答なし
  • 発話:発話の総数、成功、失敗、応答なし
  • インデント:それぞれのインデントが処理した総数
  • リテンション率:継続利用数
  • 対話パス:インデントがどのパスで呼ばれているかを確認する
  • エンドポイントのレイテンシ:エンドポイントでかかった時間ms
  • エンドポイントのレスポンス:レスポンスに成功、失敗した数

アカウントリンク

  • ユーザーIDと別システムのユーザーアカウントを結びつける
  • スキル詳細ページにアカウントリンクを有効にするボタンが表示される
  • ランディングページ(ログイン画面)は、スキル所有者が保有するページであること(例えばGoogleのログインページはNG