本とかで学んだ知識まとめ


# 参考図書一覧
- Deep
    - ゼロから作る　DeepLearning
    - Kaggleに挑む　深層学習プログラミングの極意
    - 分析モデル入門
    - 前処理大全　データ分析のためのSQL／R／Python実践テクニック
    - Python　実践AIモデル構築100本ノック
- 統計
    - 統計学入門
    - なるほど統計学園（総務省統計局）
- 記法
    - リーダブルコード
    - プログラミング作法
    - きれいなPythonプログラミング
- 業務
    - 道具としてのビッグデータ
    - IoTの基本・仕組み・重要事項が全部わかる教科書
    - AWS　しくみと技術がしっかりわかる教科書


# ☆重要ワード まとめ
- AI
    - パーセプトロンでは，パラメータを人間が決める
    - ニューラルネットワークは，パラメータを学習する
    - 学習 ＝ データから適切なパラメータを見つけること
- 統計学
    - 分析の対象と目標を明確に
    - 母集団 = 確率分布
    - 標本　 = 確率分布に従う実現値
- 記法
    - 理解するまでにかかる時間が短いコードがBest
    - Local環境依存部が存在するコードは別のファイルに
    - マジックナンバー使わない
    - 重複処理は関数化
    - ネストは浅く
    - Python："\"が多い文字列は先頭にr
    - PEP8　命名規則
        - アルファベット大文字・小文字のみ
        - モジュール名は小文字で短く
        - クラス名はパスカルケース(Exsample)
        - 定数変数は，大文字のスネークケース（EXSAMPLE_CASE）
        - メソッドの第一引数は小文字
        - クラスのprivate属性は"_"で始める
        - クラスのpublic属性は"_"で始めない
- コメント
    - コメントでなく，コードでわかりやすくする
    - 当たり前のコメントをいちいち書くな
    - 悪いコードはコメントで誤魔化さず書き直せ
- デバッグ
    - デバッグは後回しにしない！！
    - コードを舐めるように読め
- 業務
    - ビッグデータは道具であって目的でない
    - 機能だけを充実させても，使いにくいと現場に根付かない
    - 分析だけでなく，現場の行動に繋げてこそ
    - IoTの目指す先は「デジタルツイン」
        - アナログとデジタルを双子のように境目なく同一に扱えるようにする
        - アナログ環境を全てデジタル化し，PC上でシミュレーション
            1.  時系列を遡って，原因分析や因果関係分析
            1.  将来に伸ばして，今後起こりうる事象の予測
            1.  起こりうる事象に対して複数シナリオに基づく意思決定
        - シミュレーションデータの不足が問題
    - IoTで扱うデータの特徴
        1. データ量は継続的に増大する
        1. 様々な形式が混同する
        1. ノイズが混ざる
        1. タイムラグが生じる
        1. 取得データの追加や変更が頻繁に行われる


# Deep
## ゼロから作る　DeepLearning
DeepLearningの原理から理解することを目的としています．
ライブラリの運用方法等ではなく，原理について理解することをメインとしています．
めちゃくちゃ大事ですが，とっかかりにくいと思った人はKaggle本から始めてもいいかもしれません．

しかし，ものづくりにおいて原理を理解することは重要です．一度は読みましょう．

- 1章　Pythonについて
    - わかる人は飛ばしていい
- 2章　パーセプトロン
    - AND，NAND，OR　などでパーセプトロンの構造は同じ．パラメータ（重み&バイアス）を変えるだけで様々な表現が可能
    - ☆パーセプトロンは線形問題しか解けない
    - ☆パーセプトロンを重ねることで，非線形問題にも対応できる
- 3章　ニューラルネットワーク
    - ☆パーセプトロンでは，パラメータを人間が決める
    - ☆ニューラルネットワークは，パラメータを学習する
    - 活性化関数
        - （重み付き入力信号の総和）を活性化関数に通して，次へ渡す
        - 入力が重要（大きな値）であれば，大きな値を出力．不要（小さな値）であれば，小さな値を出力
        - 0-1の範囲に収める
        - 非線形な関数（NNで線形な関数は使ってはいけない⇒多層にする意味がなくなるから）
            - ステップ関数
            - Sigmoid関数
            - ReLU関数
- 4章　ニューラルネットワークの学習
    - ☆学習 ＝ データから適切なパラメータを見つけること
    - 機械学習はデータが命（これマジ）
    - DeepLearningはEndtoEnd（識別において人の介入が一切ない）
    - 損失関数＝Loss関数
        - 微分が0にならないことが重要
        - 正解と出力の誤差（現在のパラメータの良さの指標）
            - 2乗和誤差
            - クロスエントロピー誤差
    - 勾配法
        - Lossが最も小さくなる方向（勾配）へ進む
        - これを繰り返すことで，最小値へ近づける
        - 学習率（一度にどれだけ動くか）← ハイパーパラメータ 
- 5章　誤差逆伝播法
    - 口では説明できない…！！！
    - ☆けど，この本の説明が一番わかりやすい（りんごの例）
    - 読め！！！
- 6章　学習に関するテクニック
    - Optimizer（どれが良いかはタスクによる
        - SGD
        - Momentum
        - AdaGrad（学習率の減衰
        - Adam（Momentum＋AdaGrad
    - 重み初期化
        - ガウス分布
        - Xavierの初期値（Sigmoid・Tanh
        - Heの初期値（ReLU <= torchのデフォ
    - Batch Normalization（データ分布の正規化）
        - 学習速度の促進
        - 初期値への低依存
        - 過学習抑制
    - 正規化
        - 過学習
        - 重み減衰
            - 過学習への対策
            - 重みパラメータが大きすぎるとペナルティを加える
        - Drop Out
            - 信号の伝達をOFFにするニューロンをランダムに選ぶ
    - ハイパーパラメータの探索
        - Step0 : 範囲を指定する
        - Step1 : 範囲内からランダムにサンプリングする
        - Step2 : Step1の値を使用して学習&精度評価（Epocは小さく
        - Step3 : Step1&Step2を繰り返し，精度を見てハイパーパラメータの範囲を狭めていく
- 7章　畳み込みニューラルネットワーク
    - 専門なのでPass
    - 詳しく知りたい人は読んでください💛
- 8章　ディープラーニング
    - 実用例とかCNNの歴史とかです
    - 詳しく知りたい人は読んでください💛


## Kaggleに挑む　

Pytorchでのコードをがっつり載せてくれています！
理論の本ばっか読んでもわかんないよ…って人にはお勧めです👍（俺はそうでした）

特に2章はDeep初学者にわかってほしい部分がしっかり載っています．全員これ見て欲しいです:sob:

- 2章
    - 探索的データ分析（EDA）
    - NNの高速化
        - 混合精度
        - 勾配累積
    - SAM（Optimizer）
    - Focal Loss（不均衡を考慮したLoss）
- 3章
    - 重み減衰
    - AdamW
    - 学習率スケジューラ（初めは大きく，Epochが進むと小さく）
    - mixup
    - TTA(TestにもDAを行い，それらのBotingでOriginalの出力とする）
- 4章（画像検索 専門外の為パス）
- 5章（テキスト分類 専門外の為パス）



## 分析モデル入門
データサイエンス全領域の分析モデルを解説しています．統計からDeepまで網羅的です:rolling_eyes:

- 序章
    - ベクトルの内積 = ベクトルの類似度
    - ベイズの定理
        - 結果から原因の推定
- 第一部
    - 第一章　回帰分析
        - 単回帰分析 2変数
        - 重回帰分析 多変数
    - 第二章　回帰の評価と解釈
        - 評価指標
            - RMSE
            - MAE
            - R^2
        - 解釈
            - 説明変数(x)が1大きい場合，被説明変数(y)がどれだけ大きくなるかを表す
            - バイアス項は，全ての説明変数が0の時のおおまかなyの値
        - ☆分析モデルで何かを断言することはできない．あくまで傾向
    - 第三章　ロジスティック回帰分析
        - ロジスティック回帰 = 2値分類
        - 評価指標
            - Accuracy・Precision・Recall・F1(dice)
    - 第四章　機械学習を用いた回帰・分類
        - 機械学習を使うということ
            - 完全な制御下におくことをあきらめ，ブラックボックス化する代わりに，高い結果を得る
        - 決定木
            - 属性やパラメータで2つに分岐を繰り返し，結果を予測する
        - ランダムフォレスト
            - 決定木を多く作成し，それらのVotingで結果を予測する
        - 勾配ブースティング木
            - 多数決における発言権を加える
        - 決定木 ➡ 機械学習なのに，解釈性が高い！！
- 第二部（言語について読み飛ばしているのであっさりです．）
    - AIはただの関数
        - 100*100画像の2クラス分類なら，10000次元を2次元に変換する関数を作るということ
        - 良い関数を見つけるのが学習
    - GoogleNet
        - Inception Module
- 第三部
    - 強化学習（飛ばします）
- 第四部
    - 混合ガウスモデル
    - 因子分析
        - 相関の背後にある因子構造を見つける
    - 階層ベイズモデリング
    - 構造方程式モデリング
        - 因子分析の発展形
        - 因子変数だけでなく，因子変数の関連性についても考えます
- 第五部
    - 多重共線性（＝マルチコ）
        - 説明変数間の相関が強すぎるときに起こる場合がある
        - 結果が全く信頼ならないものとなる
    - 多重共線性への対処
        - 相関係数を確認する
        - 相関係数が高いものは省く
        - 罰規則を設ける
            - Ridge回帰分析
            - LASSO
    - データ欠損への対応
        - トービットモデル
        - へーキットモデル
    - 時系列分析
        - ARモデル



## 前処理大全
- 時系列データにおけるモデル検証用のデータ分割
    - CVするときに，時系列データを考えなしに分割するのはNGです．Trainに未来のデータ，Testに過去のデータが入っちゃうと不正に精度が爆上がりします．ので，時系列データにCVするときは考えてやりましょう．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120757/f5aece7c-53bb-02d3-29fd-dc732890b1ba.png)

- オーバーサンプリングによる不均衡データの調整
    - 単純にOriginalDataをランダムでコピーしてもオーバーサンプリングはできますが，過学習を考えるとよくないですよね．
    - 画像ではオーバーサンプリング時にDataAugmentationを行ったりします．数値ではSMOTE等の手法を用いてオーバーサンプリングをします．

- 外れ値除去
    - プログラミング的に外れ値の除去を行う際は，以下のように標準偏差を使うとよいです．
    - |対象値 - 平均値| >= 標準偏差*N

- 数値の補完
    - 欠損データは削除
    - 定数
    - 平均／中央／最小／最大
    - モデルを用いて欠損値を予測

- ダミー変数
    - Categorical DataをOne Hot Vectorへ変換します．
    - Machine LearningにCategorical Dataを入れたい場合に行います．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120757/841e106d-c956-4db4-51c1-e0db5c3e4a2e.png)

- カテゴリ値の組み合わせ
    - カテゴリを組み合わせることで新たな項目を追加します．
    - 単一の項目では意味のないデータでも，組み合わせることで　意味を持つ場合があります．
    - しかし，全部を探索するのはさすがに難しいので，恣意的に関連性のありそうな組み合わせを試した方がよいでしょう．

- 日時型の変換まとめ
    - 日時型・日付型
    - 年/月/日/時刻/分/秒/曜日
    - 日時差
    - 季節
    - 時間帯
    - 平日／休日


## Python　実践AIモデル構築100本ノック
<!-- 
https://www.shuwasystem.co.jp/support/7980html/6440.html
-->
- Original(100) → UMAP(2)
- Original(100) → PCA(32) → UMAP(2)
- 説明可能なAI：各変数が出力に与える貢献度を出力する
    - SHAP
    - summary_plot
    - dependence_plot
    - force_plot
    - waterfall_plot


# 統計
## 統計学入門
データ分析には統計学が必須です:sob:
統計学の本質を理解しよう！👍
（ほんとに統計！って感じなんで，Deep入口の人は↓の分析モデル入門の方で十分な気がしました…）

- 第1章　統計学とは
    - データ分析の目的
        - データの要約（数値の羅列➡可視化）
        - 対象の説明（性質・関係性を明らかにする）
        - 新規データの予測（MachineLearning等を使用）
    - 記述統計：得られたデータを整理し，要約する
    - 推測統計：得られたデータから発生元の対象を推測する
        - 確率モデル
        - 統計的推定
        - 仮説検定
- 第2章　母集団と標本
    - ☆分析の対象と目標をはっきりさせる
    - 種類
        - 有限母集団
        - 無限母集団
    - 集団の性質
        - 全数調査（パワープレイ
        - 標本調査 ←普通こっち
- 第3章　統計分析の基礎
    - 量的変数（離散＆連続）
    - カテゴリ変数
- 第4章　推測統計～信頼区間
    - 母集団 = 確率分布
    - 標本　 = 確率分布に従う実現値
    - 標準誤差 = 標本と母集団の誤差
    - サンプリング数を大きくしていくと，母集団＝標本に近づく
    - XX%信頼区間 = XX%の確率で母集団平均を含んでいる区間
        - 信頼区間が狭い → 推定値の信頼度が高い
        - 信頼区間が広い → 推定値の信頼度が低い
- 第5章　仮説検定
    - p値 = 観測値以上に極端な値となる確率
    - 帰無仮説：対象仮説の否定命題
    - 対立仮説：対象仮説
    - 仮説検定の流れ
        1. p値を計算
        1. p <  有意水準（HyperParameter）→ 対立仮説の採用
        1. p >= 有意水準（HyperParameter）→ 帰無仮説の採用
    - 上記はあくまで推測に過ぎない．間違えていることも…
        - 第一種・第二種の過誤
- 第6章　様々な仮説検定
    - 正規性あり → パラメトリック検定
        - 1標本t検定
        - 2標本t検定
        - 正規性有無の調査
            - Q-Qプロット
            - シャピロ・ウィルク検定
            - コルモゴロフ・スミノフ検定
        - 等分散性有無の調査
            - バートレット検定
            - ルビーン検定
    - 正規性なし → ノンパラメトリック検定
        - ウィルコクソンの順位和検定
        - フリグナー・ポリセロ検定
        - ブルネル・ムンツェル検定
    - 二項検定（2値カテゴリカルデータ）
    - カイ二条検定（多値カテゴリカルデータ）
- 第7章　回帰と相関
    - 相関係数（= ピアソンの積率相関関係）
- 第8章　統計モデリング
    - 回帰
        - 単回帰 → ２変数
        - 重回帰 → 多変数
    - 線形回帰に適さないデータ
        - 離散値
        - 非負整数


## なるほど統計学園
だいぶ基礎的なところですが，総務省のHPなので間違いはないはずです．基礎的な部分を振り返りたいときにつかうくらいですかね．
※URLは[こちら](https://www.stat.go.jp/naruhodo/shokyu.html)



# 記法
## リーダブルコード
実装に躍起になっていると可読性gmみたいなコードが出来上がってたりして，後で見ると凹んだ経験があります…
研究は一人でやるからいいけど業務になるとコードはみんなにみられるので綺麗に書かないとね！！

- 第Ⅰ部　表面上の改善
    - ☆コードは理解しやすくなくてはいけない
    - ☆理解するまでにかかる時間が短いのがBest
    - ☆名前に情報を埋め込む
        - 明確な単語を
        - 汎用的な名前は避ける（tmp・retval…等）
        - 具体的な名前をつける
        - 名前に情報を追加する（Format・属性…等）
        - 長すぎる名前はNG
        - でも，短くて意図が伝わらないのもNG
        - 外部のプログラマが見ても伝わる名前
    - 誤解されない名前を付ける
        - 曖昧な名前は避ける（filter, clip, right…等）
        - 範囲指定はFirstとLastを使う
        - ブール値を返す変数名には気を付ける
        - ☆最も適した名前を検討する
    - 一貫性のあるレイアウトを
    - 似ているコードは似せて書く
    - 関連するコードはまとめてブロックに
    - 改行フォーマットも揃える
    - 変数宣言は意味ブロックにまとめる
    - 意味分割できるところに空行を入れる
    - コメントすべきでないこと
        - 関数宣言
        - コメントに対するコメント
    - ☆コメントでなく，コードでわかりやすくすることを考える
    - 自分の考えを記録する
    - 欠陥にコメントを付ける
        - TODO  ： 後で手を付ける
        - FIXME ： 既知の不具合がある
        - HACK  ： あまり綺麗じゃない
        - XXX   ： 危険！大きな問題あり
    - はまりそうな罠の告知
    - 関数の要約コメント
    - ☆コメントは正確に簡潔で
    - 密度の高いコメントを（何行も書かない）
- 第Ⅱ部　ループとロジックの単純化
    - 条件やループなどの制御フローを読みやすく
    - ifの中は肯定系で書く
    - 三項演算子を使うのはわかりやすくなる時だけ
    - do-whileは避ける
    - 関数で複数のreturnを使っても良い
    - goto文はexitとセット
    - ☆ネストは浅く
    - 巨大な式は分割する
    - ”頭がいいコード”は読みやすいコードではない
    - 役に立たない一時変数は要らない
    - 制御フロー変数を削除
    - 変数のスコープを縮める
- 第Ⅲ部　コードの再構成
    - 関数は１度に１つのタスクを
    - 再帰的な書き方を
    - コードを小さく保つ
    - 身近なライブラリに親しみを（標準ライブラリ等）
- 第Ⅳ部　選抜テーマ（幅広く）
    - テストコードも読みやすく
    - 小さなテストから実装
    - エラーメッセージは明確に
    - 一つの機能に複数のテストを
        - 一発で網羅的な入力を目指さない



## プログラミング作法
”コードはきれいに書こうぜ！んでその書き方教えますわって本２”です．
C，C++，Java で書かれてますが，プログラミングする上で大事なことは特に変わらないので問題ないと思います．（そりゃCとかやる人のが為にはなるやろうけど…）
研究はPythonだけど，就職したらC++とかよー使うと思います．

- 第一章　スタイル
    - グローバル変数：わかりやすい名前
    - ローカル変数：短い名前
    - 同じ意味を指す単語は1つに統一
    - 名前はラベルではなく，読み手に情報を伝えるもの
    - インデント（Pythonは関係ないね）
    - かっこを使って曖昧さを解消
    - 複雑すぎる式は分割
    - 1行で書くより明確さを大事に
    - 常套な書き方を（変な書き方をしない）
    - 多分岐はネストでなくelifを使う
    - 関数マクロは使わない
    - マジックナンバーには名前を付ける
    - ☆当たり前のコメントをいちいち書くな
    - 関数・変数の説明はコメントする
    - ☆悪いコードはコメントで誤魔化さず書き直せ
    - コメントも明快に，書きすぎるな
- 第二章　アルゴリズムとデータ構造
    - 逐次探索（線形探索
    - 二分探索（ソートされているデータのみ
    - クイックソート（標準実装されている
    - 計算量（O：オーダー）
- 第三章　設計と実装
    - データ構造がしっかりしてれば実装は難解ではない
- 第四章　インターフェース
    - 情報の隠蔽：可視と不可視の設定
        - InputとOutputを明記しておけば，中の処理全部を可視にする必要はない（使用が明確になる）
    - 関数内で不可視にグローバル変数とかを変えるな
    - 同じ処理は同じ記法で
    - エラーメッセージは明確に
- 第五章　デバッグ
    - 優秀なエンジニアは，コードを書くのと同じくらいデバッグに時間を費やす
    - デバッガは有用だが形に残らない
    - デバッグ用のプログラムを書いておくのもおススメ
    - おなじみのミスパターンは覚えておこう
    - 最新の更新箇所は要チェック
    - 同じ間違いを繰り返さない
    - ☆デバッグは後回しにしない！！
    - ☆コードを舐めるように読め
    - ☆ぬいぐるみ等に自分のコードを説明しよう（ラバーダック・デバッグ）
    - 手がかりのないバグ
        - バグを再現できるように
        - バグの箇所を突き止めよう
        - バグ取り作業の記録をとっておこう
    - 再現不能なバグ
        - 変数の初期化してる？
        - 乱数シード値固定してる？
- 第六章　テスト
    - テスト != デバッグ
    - 事前・事後のテスト
    - アサーションを使う
    - ありえないケースを考える（コーナーケース）
    - エラーの戻り値をチェック
    - テストは細かく（最後に一気はよくない）
    - テスト内容は網羅的に
    - 回帰テスト（新Verを旧Verと比較する）
    - ストレステスト（負荷をかける）
- 第七章　性能
    - 実行時間を計測する
    - プロファイラを利用する
        - ホットスポット（処理時間の多くを占めている部分）
    - ホットスポットの改善に努めよう
    - コンパイラの最適化
    - コードの最適化（チューニング）
        - 同じ式をまとめる
        - 簡単な書き方にするよう努める
        - ループは展開or除去
        - 低級な言語で書き直す（高速化）
    - 関係ない部分を最適化すんな
- 第八章　移植性
    - 標準実装に固執しよう
    - 王道なプログラミングを
    - 標準ライブラリを使おう
    - どこでも利用できる機能だけ使おう
    - ☆システム依存のコードは別のファイルに
        - そのファイルだけ書き換えれば動かせるように
- 第九章　記法
    - 正規表現
    - 仮想マシン


## きれいなPythonプログラミング
- Part2 Pythonに適した開発方法・ツール・テクニック
    - Black：Auto Refactoring Tool
    - PEP8　命名規則
        - アルファベット大文字・小文字のみ
        - モジュール名は小文字で短く
        - クラス名はパスカルケース(Exsample)
        - 定数変数は，大文字のスネークケース（EXSAMPLE_CASE）
        - メソッドの第一引数は小文字
        - クラスのprivate属性は"_"で始める
        - クラスのpublic属性は"_"で始めない
    - 誰にでもわかる名前を（スラング等を使わない）
    - マジックナンバー使わない
    - 重複処理は関数化
    - \が多い文字列は先頭にr
    - 可変型の値をコピーするときは，copy.copy()を使う
    - 文字列連結で新しい文字列を作らない（遅い）
    - !=演算子は連鎖させない
    - Boolは整数（True=1, False=0）


# 業務
## 道具としてのビッグデータ
企業さん！データを蓄積してるだけじゃ意味ない！使い方を学ぼう！

- 第1章　ビッグデータという道具の特性
    - ビッグデータの種類
        - 構造化データ　　Excel等
        - 半構造化データ　XML等
        - 非構造化データ　Text, Sound, Image, Movie 等
- 第2章　ビッグデータの活用は目的ありき
    - データを提供し，新規ビジネスの立ち上げ
    - 既存ビジネスで得られるデータで，新規ビジネスの立ち上げ
    - 既存ビジネスで得られるデータで，既存ビジネスの売上増に活かす
    - 既存ビジネスで得られるデータで，既存ビジネスの効率や品質向上に活かす
- 第3章　ビッグデータ活用の進め方
    - ビッグデータ活用計画プロジェクト
        - モデルの仮説立案
            - 解決すべき課題の仮説を考える
            - ビジネスの目的に向かって，どこに課題があるのかという仮説を考える
            - 仮説なので，時間をかけすぎない
        - データ収集
            - 自社で持っているデータ
            - 所有してないが，所在や収集方法を知っているデータ
            - 存在を知らないデータ
            - 様々なデータを組み合わせて分析する
        - 仮説検定
            - データから有用な情報が得られるかの確認
            - データの切り口や見せ方を変え，検証しやすくする
            - 細部を見逃さない
            - データが示す意味を正しくとらえる
        - モデルの最終化
            - データの採集にかかる手間等も含めて，実現可能なモデルかを，現場担当者を交えて検討する
            - 費用対効果の検討
            - プライバシー等，データを活用できる環境が整っているかを検討する
    - ビッグデータ定着化プロジェクト
        - 出力結果から，改善．成果に繋げる．
        - 導入・モニタリング
            - 現場における分析モデルの実証
            - ☆機能だけを充実させても，使いにくいと現場に根付かない
        - 成果
            - 分析結果はよくても，思ったより成果が出ないことも
            - 成功要因・失敗要因を検証し，次の改善につなげる
- 第4章　ビッグデータ活用を成功に導く8つのルール
    - ☆ビッグデータは道具であって目的でない
    - 成果に繋げるをいう”思い”がデータから示唆を生み出す
    - 思い込みが過ぎると見誤る
    - 実態を正しく把握する為，複数のデータを組み合わせる
    - データによる検証は1回で終わらない
    - ビッグデータの神は細部に宿る
    - ☆分析だけでなく，現場の行動に繋げてこそ
    - 現場の声を聴いて，現場を動かし，使い続ける


## IoTの基本・仕組み・重要事項が全部わかる教科書
- 第1章　IoTの現状と取り巻く環境
    - 全人口より多くの機器がインターネットに接続されている
    - IVI　(Industrial Valuechain Initiative
    - RRI　(Robot Revolution Initiative
    - センサー・クラウドが安価に
    - SNSの登場でデータが大爆発
    - 第三のプラットフォーム：SMAC（Sortial,Mobile,Analytics,Cloud)
    - ☆IoTは技術だけでは導入できない
        - どの現場で？
        - どのような課題に対して？
        - どのような効果を出すか？
    - IoT（Internet of Things)からIoE（Internet of Everything）へ
    - ”モノ”にこだわらない
    - ☆IoTの目指す先は「デジタルツイン」
        - アナログとデジタルを双子のように境目なく同一に扱えるようにする
        - アナログ環境を全てデジタル化し，PC上でシミュレーション
            1.  時系列を遡って，原因分析や因果関係分析
            1.  将来に伸ばして，今後起こりうる事象の予測
            1.  起こりうる事象に対して複数シナリオに基づく意思決定
        - シミュレーションデータの不足が問題
- 第2章　IoTアーキテクチャの構成要素
    - IoTの特徴
        - 複数のデバイス間でやりとり
        - 収集した複数のデータを用いて分析
        - データ分析から予測モデル等を作成
        - 結果を現場にフィードバックして最適化
- 第3章　さまざまなデータベース
    - センサー（波形データ）
    - 測定対象に対する目的を明確化して，センサーを選ぶ
- 第4章　IoTデータの収集・蓄積の基本と活用までのプロセス
    - ☆IoTで扱うデータの特徴
        1. データ量は継続的に増大する
        1. 様々な形式が混同する
        1. ノイズが混ざる
        1. タイムラグが生じる
        1. 取得データの追加や変更が頻繁に行われる
    - 収集：データをどの形式で送信するのか
    - 蓄積：大規模データを継続的に，取り出しやすい形で
    - 整形：ノイズを除いて利用でいるデータに加工
    - 集約：目的に合わせて様々なデータを連携
- 第5章　データの活用を見据えた分析の必要性
    - 重要なのは”分析”と”見える化”
    - 頻繁に用いられる統計手法
        - クロス分析：複数の要素を掛け合わせて新たな要素にする
        - 回帰分析
        - ロジスティック回帰分析（2クラス）
        - 相関分析
        - アソシエーション分析
        - クラスター分析
        - 決定木分析
        - インバリアント分析（異常検知）
    - AIの誤り
        - めっちゃ賢いAIがすでにある
        - Deepやればだけでもすぐ”すごいこと”ができる
        - AIと呼ばれる単一のテクノロジーが存在する
        - AIを導入するとすぐ効果が出る
        - 教師なし学習は教えなくてよいので教師あり学習より優れている
        - DeepLearning最強!!DeepLearning最強!!
        - アルゴリズムをコンピュータ言語のように選べる
        - 誰もがすぐ使えるAIがある
        - AIとはソフトウェア技術である
        - 結局AIは使い物にならない
- 第6章　今後重要になるIoTシステムの運用
    - IoT運用による懸念点
        - 接続デバイスが増加する
        - アプリケーション数も増加する
        - データ量が劇的に増加する
    - これらに耐えうる環境を作ってからリリース
- 第7章　トータルな対応が求められるIoTの安全性
    - UseNameやPasswordを初期のままにしない


## AWS しくみと技術がしっかりわかる教科書
- OS，Webサーバ，DBサーバ，S/W　まで全て借りられる
- 従量制 → 初期費用は安い，ランニングコストが掛かる
- バックアップやアップデートが自動（最高やん）
- Amazon EC2（AWSといえばこれ）
    - サーバの部品を一括で借りられる
    - すぐ作れる，すぐ壊せる
    - 構成要素を試行錯誤できる
- Amazon S3
    - ストレージ
    - 他サービスと紐づけしやすい
    - セキュリティや耐久性が高い
- Amazon VPC
    - AWS垢専用の仮想ネットワーク
    - EC2とか使うときに必須（実質必須）
- Amazon RDB → データベース管理
- クラウドの提供形式
    - SaaS (Software as a Service)
        - H/W，OS，アプリケーションを提供
    - PaaS (Platform as a Service)
        - H/W，OSを提供
    - IaaS (Infrastructure as a Service)
        - H/Wを提供



# おわりに
個人的に買って手元にずっと置いといてもいいな！ってのはこのへんでした．あとは，研究室とかにあってみたいとき見れればOKかな．
- ゼロから作るDeepLearning
- Kaggleに挑む
- リーダブルコード
- プログラミング作法（C使うなら）

俺のQiita読むより本読み込め！！以上解散:bangbang: