IoT活用

1.IoTとは

 Internet of Things(モノのインターネット、様々なものがインターネットにつながり、新たなサービスを創造する)。ユビキタスネットワークの後継。

 

2.第四次産業革命

  1. 第一次産業革命
    18世紀後半、蒸気・石炭を動力源とする軽工業中心の経済発展および社会構造の変革。イギリスで蒸気機関が発明され、工場制機械工業が幕開けとなった。
  2. 第二次産業革命
    19世紀後半、電気・石油を動力源とする重工業中心の経済発展および社会構造の変革。エジソンが電球を発明したことや、物流網の発展などが相まって、大量生産、大量輸送、大量消費の時代が到来。フォードのT型自動車は第2次産業革命を代表する製品の1つといわれる。
  3. 第三次産業革命
    20世紀後半、コンピュータ等の電子技術やロボット技術を活用したマイクロエレクトロニクス革命により、自動化が促進された。日本メーカーのエレクトロニクス製品や自動車産業の発展などが象徴的である。
  4. 第四次産業革命 
    2010年代現在、デジタル技術の進展と、あらゆるものがインターネットとつながるIoTの発展により、限界費用や取引費用の低減が進み、新たな経済発展や社会構造の変革を誘発すると議論される。

AI基礎1

1.ディープラーニング

 ・ニューラルネットワーク

 人口神経を相互接続したもので計算を構造化し、コネクショニズム的計算手法で情報を処理する。入力と出力の間の複雑な関係をモデル化し、データのパターン認識や観測された変数間の未知の同時分布における統計的構造を捉える。ディープラーニングとは、多層のニューラルネットワークによる機械学習の手法である。

 

2.パーセプトロン

 人間の脳にはニューロンという神経細胞があり、それを数式で表すためにニューロンモデル(形式ニューロン)が定義された。ニューロンモデルは一つ以上の入力値と一つの出力値を持っている(ただし、出力値は二値(1:ある、0:ない)で表される)。二値で出力するためにしきい値を用いる。入力値それぞれに対し、結合荷重(係数)という定数との積を足し合わせた数(ネット値)を活性化関数を通した結果をしきい値と比較して二値のどちらかを出力するモデルをパーセプトロンという。入力層と出力層の二層だけのモデルを単純パーセプトロンという。

 

3.ディープラーニングの種類

  • 畳み込みニューラルネットワーク(Convolutional Neural Network) CNN
    教師あり学習。画像データの扱い、認識、分類
    〇できていること
     画像認識、画像の説明テキスト生成、運転支援、個人特定
    〇今後できそうなこと
     リアルタイムの検査、競技の採点、農業など自然を対象とする仕事の自動化
  • リカレントニューラルネットワーク(Reccurent Neural Network) RNN
    教師あり学習。時系列データの扱い、未来予測や自動作文に強い
    〇できていること
     翻訳、小説作成、電力予測、自動記事作成
    〇今後できそうなこと
     話し相手、防犯、教育目的(学習管理)
  • オートエンコーダ(Auto Encoder) AE
    教師なし学習。ノイズ除去や画像生成に強い
    〇できていること
     低解像度から高解像度への復元、画像生成(画風模倣、筆跡模倣など)
    〇今後できそうなこと
     芸術作品の生成、合成音声による声優

仮想化4(コンテナ)

1.コンテナとは、仮想化との違い
 
Linux(OS)カーネルの「コンテナ」機能を利用した分離環境である。プロセッサ、メモリ、ストレージを用意したうえで、OSを実行しなければならない仮想マシンとは違い、一つのOS上で稼働するので、プロセッサやメモリの消費量は少なく、ストレージの使用もわずか。結果として、仮想マシンに比べて起動時間が短く、同じ性能のハードウェアであればより多くのコンテナを同時に動かすことができる。またコンテナ管理ソフトウェアがハードウェアやOSの違いを吸収してくれるので、既にアプリケーションやミドルウェアの稼働が確認されているコンテナであれば、他のサーバに移して動かしても動作は保証される。仮想マシン内のアプリケーションは全て同一のネットワークとなるのに対して、コンテナエンジン上のコンテナはそれぞれ独立したネットワークとしても稼働できる。

 

2.Docker
 
DockerとはDocker社によるオープンソースのコンテナエンジン。Docker Hubにユーザが作成したコンテナイメージを自由に公開・共有できる。自身のローカルにないコンテナイメージはここからダウンロード、実行される。

  • Docker Hubからのダウンロード → pull
  • Docker Hubへのアップロード  → push

 DockerはLinuxのコンテナ技術を応用しているためWindowsmacOSで動作させる場合には仮想環境が必要。

 

Docker for WindowsでTOPPERS/EV3RTのビルド環境構築1

1.Docker for Windowsのダウンロード/インストール

 Windows10 Pro以上の環境でDocker環境の構築を行う。
 ※Download from Docker Hub

docs.docker.com

 

2.Cドライブのシェア(ファイアウォールの解除)

 Windows上のファイルをマウントするためにはドライブの共有を行う必要があるが、セキュリティーソフトのファイアウォールに引っ掛かる場合があるので、それを解除する。
 ・Windowsの設定
 ローカルセキュリティポリシー - ネットワークリストマネージャーポリシーの「識別されていないネットワーク」を開き、場所の構成を未構成からプライベートに変更。

 ・セキュリティーソフト(ノートン)
 ノートンの設定>ファイアウォールの一般設定タブからデバイスの信頼の設定を開き、以下を設定。

  • docker1 アドレス:10.75.0.1
  • docker2 アドレス:10.75.0.0

 ※名前はなんでもいい

最後にDocker Desktopを再起動してsetting - Shared Drives でCドライブを設定する。

 

3.Dockerの起動確認

 windows power shellで以下のコマンドが正常に動くことを確認。

  • docker version
  • docker run hello-world

 両方とも正常に起動したら準備完了。

 

参考

Windows10 HomeでDockerを使って簡単にTOPPERS/EV3RTのビルド環境を構築する - Qiita

DockerのShared Driveがノートンのファイアウォールに引っかからないようにする | gfonius.net

 

ビッグデータ1

1.ビッグデータとは

 一般的なデータ管理・処理ソフトウェアでは扱うことが困難なほど巨大で複雑なデータの集合。ビッグデータの本質とは、
 ・従来のシステムでは取り扱いできない巨大なデータ
 ・定型ではない複雑なデータ
 ・データから得られる二次情報を活用することにより、新たな発見・予防など新たな価値を得ることができる

 

2.ビッグデータの種類
 構造化データ :データベースに格納される行列の二次元で表現されるデータ 
 準構造化データ:ログデータ、センサーデータ、SNSに書き込まれたデータ等完全な構造定義を持たないデータ
 非構造化データ:データ部に構造定義を全く持たない文書、音声、動画、画像等

 準構造化データ、非構造化データは全体のデータ総量の80%を占め、今後5年間で800%の増加傾向。

 

3.ビッグデータの特性

 3つのVから5つのVへ。

Velocity(生成頻度):センサ、Web等から常に発生。リアルタイム性が求められる。
Volume(量):大量、爆発的に増加。予測不可能
Variety(多様性) :音声、動画等、非構造化データも含む

Veracity(正確性):センサーデータやユーザコンテンツが発生源
Value(価値):大量なデータを組み合わせることで新たな価値を

 

4.オープンデータ

 オープンデータとはだれでもいつでも、利用・再配布できる状態にあるデータのこと。主な公開主体は政府・地方自治体・研究機関・大学・民間企業等である。具体例としては国税調査データ(e-stat:政府統計の総合窓口)や気象データなど。

 

5.ビッグデータとセキュリティ

 個人情報の許諾を得る方法

 オプトイン(事前承認):
明示的な同意がない限り、個人情報やプライバシー情報は収集されない

 オプトアウト(事後承認):
明示的に拒否していない限りは同意したものとし、明示的な拒否により個人情報やプライバシー情報の利用が停止される

 

 匿名加工処理の手法

(1)摂動法
 ①K-匿名化:同じグループ内に、同じ属性のユーザが「K人以上いる」状態を作り出す。
 ②L-多様性:漏洩させたくない属性が同じグループ内で「L種類以上ある」状態を作り出す。
 ③T-近接性:マイナー属性を持つグループが生まれるなど、属性値の分布に偏りが出てしまう場合に、グループの分割や一般化を行う。
 ④差分プライバシー:2006年に提案された新しい手法。元のデータベースにノイズを足した別のデータベースを用意し、守りたいレコードを特定しづらくする。

(2)暗号法
 ①質問監査:データベースへのアクセス者に質問を投げかけ、答えることができれば、アクセスに対する回答を返す。
 ②秘密計算:関係者全員が、自社データを他人が読めないように変換し、秘密計算のシステムに投入する。そのシステムの管理者が、秘密計算の結果を求め、関係者に回答する。
 ③準同型性公開鍵暗号を用いた暗号プロトコル:遺伝子データ等、加工してしまうとそもそも分析できなくなるデータを処理するときに活用。検索者の検索クエリ、データベース、その解答それぞれを暗号化する。分析者が元データベースに触れずとも、望む解析結果が得られる。

仮想化3(仮想ネットワーク)

1.仮想ネットワークの概要

 ハイパーバイザによって仮想的なネットワークの作成が可能。ハイパーバイザの設定によって、物理ネットワークと仮想ネットワークを接続したり、分離させたりと様々なトポロジ構成が可能。

 

2.ネットワークとVLAN

 データリンク層(Ethernet)は本来ネットワークを分割できないが、VLAN対応スイッチによって提供されるVLANによって分割が可能。仮想ネットワーク内でも仮想スイッチによるVLAN分割が可能(入れ子)。

 

3.仮想NICとネットワーク形態

 ハイパーバイザによって仮想的なインターフェースである仮想NICが作成され仮想ネットワークも作成される。

 ①Host-only
 ハイパーバイザが動作しているホストとのみ通信できるネットワーク。ネットワーク内の物理マシンや外部ネットワークとは通信できない。

 ②NAT
 仮想ネットワークにはプライベートアドレスが与えられる。仮想ネットワークからホストのネットワークには接続可能だが、ホストのネットワークからNATは参照不可。また仮想ネットワーク内の各端末同士は参照不可

 ③NATネットワーク
 仮想ネットワークにはプライベートアドレスが与えられる。仮想ネットワークからホストのネットワークには接続可能だが、ホストのネットワークからNATは参照不可。NATと違い仮想ネットワーク内の各端末同士は参照可能

 ④ブリッジアダプタ
 ハイパーバイザの提供する仮想ブリッジ(仮想スイッチ)を介してホストのネットワークに接続可能。ホストネットワークと同じ空間上のアドレスを持つのでホストネットワークからも仮想ネットワークからも接続可能。物理ネットワークに影響を与える恐れがある。 

 ⑤内部ネットワーク
 仮想ネットワークにはプライベートアドレスが与えられる。仮想ネットワーク内の各端末同士は参照可能だが、ホストネットワークから仮想ネットワーク内の各端末への参照、仮想ネットワーク内の各端末からのホストネットワークへの参照はともに不可。 

 

仮想化2

 仮想環境を実行するためには、仮想環境を構成する仮想コンポーネントが必要。主なコンポーネントは以下の通り。

1.仮想マシン

 サーバやデスクトップPC、タブレット等、OSやアプリケーションソフトウェアを実行するために必要なハードウェアの環境を、仮想的にハイパーバイザ上に再現したマシンのこと。ソフトウェア的に再現されたPC。一般的にはVirtual Machineの頭文字を取ってVMと表される。仮想マシンを構成するコンポーネントをひとまとめにして、ハイパーバイザ上にフォルダやディスクイメージとして保存、活用されます。

 

2.仮想CPU

 実際に稼働しているハードウェアとしての物理CPUのリソースを分割し、ハイパーバイザ上で稼働している仮想マシンのCPUとして構成されたもの。仮想マシンからは仮想CPUが物理CPUとしてみえる。
 
仮想マシン1つにつき1つのCPU、もしくは1つのコアを割り振るのが理想的
 ・重い仮想マシンには多くのコアを割り振り、軽い仮想マシンには少ないコアを割り振る
 ・商用のハイパーバイザの中には、CPUのコア数、仮想CPUの総コア数でライセンスが決まるものもある

 

 最近の仮想CPUには仮想CPUを物理CPUとほぼ同等に動作させる仮想化支援機能がある。CPUの特権レベルは概念的にリング構造となっており、中央から0~3の4段階のリングになっている。

 リング0カーネルモード。CPUの全機能を無制限に利用できる。通常アクセスできるのはハードウェアを制御しているOSのみ。

 リング1~3:ユーザモード。アプリケーションは通常リング3で動作する。

 この仕組みはアプリケーションによって出された不当な命令によって、ハードウェアやシステムを破壊してしまうことを未然に防ぐ保護機能である。

 ハイパーバイザは通常リング3で動作するが、仮想マシン上のOSが必要に応じてリング0へのアクセスを試みると、命令矛盾が発生してしまう。この矛盾を解決するために、仮想化支援機能として新たな動作モードを搭載したCPUが開発されている。

 仮想化支援機能(VT-X,AMD-V等)を利用すると例外なしにリング0にアクセスできる。I/Oもほぼ直接アクセスできるため、物理環境に近い速度で動作する。ただし、デフォルトで仮想化支援機能が無効になっているPCもあるので注意が必要。

 

3.仮想メモリ

 物理ハードウェア上で稼働しているOSが利用する物理メモリがリソース不足になった際に利用されるストレージのメモリ化とは異なり、ハイパーバイザが仮想マシンに割り当てて利用するメモリ。

 Type-Ⅰハイパーバイザ:仮想マシンがほぼすべてのメモリを使用可能
 Type-Ⅱハイパーバイザ:他アプリケーションが使用するメモリ容量を考慮して設計

 

4.仮想HBA、仮想ディスク

 仮想マシンは物理ハードウェア上に構成されていた仮想ディスクをストレージとして利用する。その仮想ディスクと仮想マシンをつなぐ、論理的な接続が仮想HBA(ホストバイアダプタ)である。仮想ディスクは動的構成を取ることができ、設定上1220Gの仮想ディスクを使用しても、実際に使用しているサイズのみ物理ストレージ上では消費する。

 

5.仮想NIC、仮想スイッチ、仮想ルータ

 仮想マシンがネットワークを利用する場合は、物理ネットワーク機器と仮想マシンを間に仮想ネットワークを構成する必要がある。論理的なNIC(ネットワークインターフェースカード)が必要となり、論理的ルータ、論理的スイッチを必要とする。

 仮想スイッチ、仮想ルータは、仮想ネットワークにおいて、それぞれ物理機器と同じ役割を果たす。仮想ネットワークをNATにする場合はvRouterがVLANを作成する場合はvSwitchが必要。