ここではICT技術に関して以下のマップに示される領域の情報について述べている。
以下それぞれの詳細について述べる。
ICT技術について
現在のコンピューターは、その機能も能力も大幅に向上し、様々な事を行わせることができる。まさに無限の可能性を持つ箱となっている。ここでは本ブログ内で述べている 機械学習技術、 人工知能技術を実現するためのバックボーンとしてのコンピュータの様々なICT技術(Information and Communication Technology;ICT技術)について述べる。
ITインフラストラクチャー技術について
インフラ(インフラストラクチャー)は、もともと「下部構造(インフラが下部、ストラクチャーが構造)」のことだが、それが転じて「生活や産業の基盤となる設備・施設」を指して使われるようになった。身近なところでは水道・電気・ガスなどの設備や道路などがインフラに該当する。
システムにおけるインフラ、ITインフラとは何かというと、まずシステムを要素分解すると第2階層、「アプリケーション」と「インフラ」に分けることができ、インフラを要素分解すると、「ハードウェア」と「システムソフトウェア」に分けることができる。
本ブログでは 以下のページにて、このITインフラストラクチャー技術に関して、OS、サーバー、ハードウェア、ネットワーク、DeveOps、クラウド等の個々の技術詳細について述べている。
ネットワーク技術
Web技術のベースとなるインターネットの始まりは複数のコンピューターを経由して通信するしくみであるARPNETから始まる。ARPANETは1960年代後半から研究が開始され、1970年台初頭ににアメリカで実現されたもので、パケットと呼ばれる通信データを細切れにしたデータを複数のマシンを経由して通信するというものになる。
当初は耐障害性の高いネットワークを構築するという軍事目的から始まったものであるが、それらを広く世界中で使われる標準技術まで昇華させたものがインターネットプロトコルスイート(スイートは一式を意味する)になった。
本ブログでは 以下のページにてこのネットワーク技術の詳細についてハードウェア/ソフトウェアの観点から述べる。
サーバー技術
サーバとは、HTTPに則り、クライアントソフトウェアのウェブブラウザに対して、HTMLやオブジェクトの表示を提供するサービスプログラム及び、そのサービスが動作するサーバコンピュータを指す。 広義には、クライアントソフトウェアとHTTPによる通信を行うプログラム及びコンピュータを指す。
本ブログでは 以下のページにてこのサーバー技術について概要を述べるとともに、Apache HTTP Serverやnginx等の代表的なサーバーの概要と具体的な立ち上げについて述べている。
クラウド技術について
クラウド・コンピューティングは、1台の物理的なサーバー内に、仮想的に複数のサーバーを立ち上げる技術となる。 この技術の登場により、物理的には1台分のサーバーのスペースで複数のサーバーを運用できるようになっている。
本ブログでは 以下のページにて、このクラウド技術の概要について述べると共に、AWSでのクラウドパターンや具体的な実装やTerraformでの自動設定、さらにDocker技術やKubernetesを使ったコンテナオーケストレーションについて述べる。
オペレーティングシステム(Linux等)
オペレーティングシステムとは、ソフトウェアの種類の一つで、機器の基本的な管理や制御のための機能や、多くのソフトウェアが共通して利用する基本的な機能などを実装した、システム全体を管理するソフトウェアとなる。
入出力装置や主記憶装置(メインメモリ)、外部記憶装置(ストレージ、ディスク)の管理、外部の別の装置やネットワークとのデータ通信の制御などが主な役割で、コンピュータに電源が投入されると最初に起動し、電源が落とされるまで動作し続ける。利用者からの指示に基いて記憶装置内に格納されたソフトウェアを起動したり終了させたりすることができる。
OSの機能を利用し、OSの上で動作するソフトウェアをアプリケーションソフト(application software、応用ソフト)という。アプリケーションの開発者は、OSの提供する機能を利用することによって、開発の手間を省くことができ、操作性を統一することができる。また、ハードウェアの仕様の細かな違いはOSが吸収してくれるため、あるOS向けに開発されたソフトウェアは、基本的にはそのOSが動作するどんなコンピュータでも利用できる。
本ブログでは 以下のページにて、このオペレーティングシステムの概要とLinuxの代表的なOSであるCentOS、Ubuntuさらに組み込み系のOSであるμTRONやAndroidなどについて述べている。
コンピューターにおけるハードウェア
コンピューターは、プロセッサ、メモリ、ストレージ、入力デバイス(キーボード、マウスなど)、出力デバイス(ディスプレイ、プリンターなど)、ネットワークインターフェイスカード、サウンドカード、ビデオカード、マザーボード、電源などのハードウェア部品から構成される。
本ブログでは 以下のページにて、これらのコンピュターのハードウェアでも特に、機械学習技術と関連の深いFPGAやASIC等のCPUと、人工知能技術とも関連が深いIOT技術について述べる。
DevOpsについて
DevOpsは、ソフトウェア開発(Dev)とIT運用(Ops)を組み合わせて、ソフトウェア提供のスピード、効率、品質を向上させるための一連のプラクティスとなる。DevOpsは、開発チームと運用チームの間の従来のサイロを取り払い、コラボレーション、自動化、継続的改善の文化を促進することを目的としている。
本ブログでは 以下のページにてこのDevOps技術の概要とDocker等の具体的な実装について述べる。
Web技術について
Web技術は、機械学習、人工知能、デジタルトランスフォーメーション等の技術を載せるプラットフォームとなる。
本ブログでは 以下のページにて、このWeb技術に関して、概要(インターネット技術概要、HTTPプロトコル、ウェブサーバー、ウェブブラウザ、ウェブアプリケーションとJavascriptやReact等のプロジラミング技術)と実装技術(Javascript、React、Clojure,Pyhton等による具体例)、具体的な活用(MAMP、各種CMS(Contents Management System)であるMediaWiki、WordPress、検索プラットフォームであるFessやElasticSearchの具体的な立ち上げ)と様々な応用(学会やweb上で発表された様々な応用例)について述べる。
マイクロサービスとマルチエージェントシステム
マイクロサービスとは、一つのアプリケーションを複数のサービスに機能的に分割するためのアーキテクチャスタイルとなる。アーキテクチャスタイルとは、建築”様式”のことで、構造設計(アーキテクチャ)だけでなく、開発・運用手法、組織体制や運営等、構造物の開発・運用に対する一切合切をまとめたものが”アーキテクチャスタイル”となる。
本ブログでは 以下のページにて、このマイクロサービスに関して、アーキテクチャと開発スタイル、テスト、保守等のがいうよについて述べ、さらにClojureを使った具体的な実装について述べる。
データベース技術について
データベースとは、wikiでの説明だと「データベース(database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。 通常はコンピュータによって実現されたものを指す。コンピュータを使用したデータベース・システムでは、データベース管理用のソフトウェアであるデータベース管理システムを使用する場合も多い。プログラムで扱うデータ構造やデータそのものを独自実装の場合に比べて少ない工数で操作できるようにしている。膨大なデータを扱う現代の情報システムでは最重要と言える。
データベースを利用する利点としては、プログラムで独自のデータ構造を実装するよりも汎用的なデータ構造をシンプルに活用できること、後ほど述べるデータの統一性を担保できるしくみ(データのバックアップ等)を利用できることがある。
本ブログでは 以下のページにて、このデータベースに関して様々な技術について述べている。
検索技術について
コンピューター技術のベースとなる”情報”。情報はただ集めるだけでは意味がなく、集めた情報から創造的な活動を行うには、「集める」「探す」「見つける」「眺める」「気づく」というサイクルを回す必要がある。これらにはそれぞれ対応する技術や思想が存在する。今回は「探す」技術(検索技術)について述べる。
本ブログでは 以下のページにて検索技術に関する様々な技術に対して述べている。
ユーザーインターフェースとデータビジュアライゼーション
コンピューターを使ってデータを処理するということは、データの中にある構造をビジュアライゼーションすることで価値を生み出しいくいくことと等価となる。さらに、データ自体には複数の視点で複数の解釈が可能であり、それらをビジュアライゼーションしていくためには、巧妙に設計されたユーザーインターフェースも必要となる。
本ブログの 以下のページにて、主にISWC等の学会に発表された論文を中心に、このユーザーインターフェースの様々な事例について述べる。
ストリームデータ技術
この世の中は静的なデータではなく動的なデータに溢れている。たとえば、工場やプラント、交通や、経済、ソーシャルネットワーク等で膨大な動的データが形成されている。工場やプラントのケースでは一般的な石油生産プラットフォームのセンサーでは、毎分10,000回の観測が行われ、ピーク時には100,000 o/mに達したり、モバイルデータのケースではミラノのモバイルユーザーは、1分間に20,000回の通話/SMS/データ接続を行い、毎分20,000回、ピーク時には80,000回に達したり、ソーシャルネットワークの場合は、例えばFacebookでは、2013年5月現在、1分間に300万件の「いいね!」を観測している。
これらのデータが現れるユースケースでは「最後の10分でタービンのバーリングが振動し始めたときに予想される故障のタイミングは何か?最後の10分間に検出されたように、タービンのバーリングが振動し始めたときの予想故障時間は?」とか「人々がいるところに公共交通機関はあるのか?」とか「話題のトップ10について、誰が議論をしているのか?」等の粒度の細かな様々な課題が生じ、それらに対する解が求められている。
本ブログでは 以下のページにて、このようなストリームデータを扱うためのリアルタイム分散処理フレームワーク、時系列データの機械学習処理、およびそれらを活用したスマートシティやインダストリー4.0などの応用例について述べる。
暗号化とセキュリティ技術およびデータ圧縮技術について
近年のディジタル技術の急速な発展は、情報の流通と共有を促進し、社会の構造や機能を連続的に繋いでいく、その中で個人情報や機密情報の保護と活用の矛盾相克を解決するため、情報を暗号化する技術や、情報にアクセスする事を制御するセキュリティ技術、また情報を圧縮する技術等の重要性が増している。
本ブログでは 以下のページにて、これら暗号化とセキュリティ技術およびデータ圧縮技術について以下のような項目を述べている。
地理空間情報処理
地理空間情報とは、位置の情報もしくは、位置と結びついた情報を指す。例えば、LOD等に利用される行政で扱う情報の80%は何らかの位置情報と結びついていると言われ、極論すると、情報が発生した場所を情報と一緒に記録すると、すべての情報が「地理空間情報」ということもできる。
この位置と結びついて情報を扱うことで、単純に地図の上に位置情報をプロットするだけでも、情報の分布状況を把握する事ができ、GPS等を用いて緯度軽度に結び付けた道路や目的地のデータがあると、GPS付きの端末を持った人を目的の場所へ誘導したり、どういった動きをしたかという軌跡を取ることにより、緯度軽度と結びついて過去・現在。未来の出来事の情報で、位置を元にサービスを提供することもできる。
このような位置情報の特徴をうまく活用することで、新たな科学的な発見や、ビジネスでのサービスの展開、またさまざまな社会問題の解決が可能となる。
本ブログでは 以下のページにて、この地理空間情報の活用として地理情報のプラットフォームであるQGISの具体的な利用方法、またそれらとRや各種機械学習ツールとの組み合わせ、またベイズモデルとの組み合わせ等について述べる。
センサーデータとIoTとWoT技術
センサー情報の活用はIOT技術の中心的な要素となる。センサーのデータとしては様々なものがあるがここでは1次元の時間的に変化する情報を対象として述べる。
IOTのアプローチとしては、特定の測定対象に対して個別にセンサーを設定し、その測定対象の特性を詳細に解析するタイプののものと、「異常検知へのスパースモデルの適用」にも述べられているように複数のセンサーを複数の対象に向けて設置し、得られたデータの中から特定のデータを選択して、特定の対象に対して異常検知を行う等の判定を実施するものに分けられる。
本ブログでは 以下のページに、各種IOTの規格(WoT等)や時系列データとして統計的処理、隠れマルコフモデル等の確率的精製モデル、劣モジュラ最適化によるセンサ配置最適化、BLE等のハードウェアの制御、スマートシティ等幅広い領域の知見について述べる。