AI半導体

 Top  お知らせ  ブログ  歴史散歩
 

 歴史散歩



  『古事記』は偽書にあらず



 古代メソポタミア 



 古代メソポタミア史



 ヒッタイト古王国時代



 ヒッタイトと古代エジプト




  細胞化学



  DNA


  遺伝子発現の仕組み


  ファンデルワールス力


  生命の起源


 アポミクシスapomixis


  植物の色素


  植物の運動力


  遺伝子の発現(1)


  遺伝子の発現(2)


  元素の周期表


  デモクリトスの原子論


  相対性理論「重力」


  相対性理論「宇宙論」


  相対性理論「光と電子」 


 素粒子の標準理論


  宇宙の誕生


  共役変換

  cp対称性


  質量とエネルギー
 

 相対性理論「重力」


 相対性理論「宇宙論」


 相対性理論「光と電子」


  量子力学


  太陽系の物理


  半導体
 
 目次     
  
 
 1)集積回路Integrated Circuit (IC)
 2)AI(人工知能)開発がもたらす半導体の進化
 3)クライアントPC
 4)ニューラルネットワーク
 5)ディープラーニング
 6)データ拡張
 7)グラフィックスプロセッサ(GPU)



 1)集積回路Integrated Circuit (IC)
 トランジスタの発明により、それまで真空管を使っていた電子回路の一部が、ゲルマニウムやシリコンなどを材料にする半導体に置き換えられ、電子回路の小型化・高耐久化が進められた。しかしながら、コンデンサや抵抗、配線など電子回路の他の部分は依然として従来のままであった。それでも、電子回路全体の小型化は必然でもあり加速化した。従来のフレームワークを、アルミのシャーシを使う基板から合成樹脂製のプリント基板に変え、個々の部品の小型化と軽量化に一定の成果をあげてきた。
 しかし、基本的に、一つひとつの部品を別々に作って組み立てるという発想であったため、その小型化には自ずから限界があった。
 1958年当時には、半導体の中にコンデンサや抵抗を作ることや、一つのウェーハwaferに複数のトランジスタを作ることは行われていた。また、研究者などでは、ひとつの基板の上にさまざまな部品をどう効率的に組み込むかという課題をほぼ共有していた。
 そんな状況を打開させたのが、テキサス・インスツルメンツ(TI)社に着任したばかりのジャック・キルビーJack St. Clair Kilby(2000年にノーベル物理学賞を受賞)であった。トランジスタをゲルマニウム半導体でつくるのなら、いっそのことコンデンサや抵抗も含めて、ゲルマニウム結晶体の中に、ひとつの回路全体を作りこむ構想であった。こうして、最初の集積回路が誕生する。
 ウエハーとは、半導体の結晶素材自体で、円盤状の薄い半導体基板や半導体素子の材料を作る。素材となる半導体には、シリコン(ケイ素)やゲルマニウム、ガリウムヒ素などがあり、その中でも、低価格で入手が容易なシリコンが最も多く用いられている。シリコンウエハーは、シリコンSi素材のウエハーであるが、半導体材料の代名詞となり特に「シリコンウエハー」と呼ばれる。
 ウエハーは、その平坦性や清浄度、結晶内の不純物濃度などによって、製品価値や性能が大きく影響される。そのため、ウエハーの製造には、厳密な空調を備えた設備と高度な精密加工技術が必要となる。シリコンウエハーのシェアは、全半導体基板の90%を占める。シリコンが最も多くウエハーに用いられているのは、
 「資源量は酸素に次ぐ第2位、資源が豊富。」
 「モース硬度が7と比較的高いために硬くて丈夫。」
 「高純度化に作り易い。」
 「大きな結晶が安価に作れる。」
 「加熱時、表面に形成されるシリコン酸化膜の絶縁性能が高く欠陥も少ないため、高集積化が行い易い。」
 などの利点が多い。
 ウエハーの素材となる多結晶シリコンは、珪石を精錬して純度98%の金属ケイ素を「イレブンナイン(99.999999999%)」と呼ばれるまでに高純度化したものである。ウエハーメーカーは、この高純度多結晶シリコンを多結晶シリコンメーカーから調達して、単結晶シリコンインゴットを作成する。
 単結晶シリコンインゴットの製造には、「CZ法チョクラルスキー法Czochralski method)」が主に採用されている。

 半導体製品は、ウエハーに様々な加工を施すことで製造される。例えば、半導体チップの回路パターンは、ウエハー上での成膜、露光や現像、エッチングなどの加工を繰り返し施すことで形成される。そして、一枚のウエハーには、通常、多数の半導体チップが規則正しく並んだ状態で形成されている。これを境界に沿ってカットしていけばシリコンダイと呼ばれる半導体チップの単体が得られる。
 (ダイとは、半導体チップの製造工程で、円盤状の基板に回路パターンを焼き付け、さいの目状に切り分けて得られた一枚一枚のチップ。これに金属端子やプラスチックのカバーなどを取り付けると半導体パッケージとなる。
「die」とは、「dice」の単数形、つまり「サイコロ」。
 エッチングは、前工程までにウエハー表面へ付着した金属不純物や研磨剤、ゴミなどを加工物表面にできる皮膜を電解エッチングによって除去しながら、研削加工や研磨加工、及び鏡面仕上げ加工した時に発生する加工歪を除去する工程である。この工程で、ウエハー表面は滑らかになる。

 サファイアウエハーは、宝石として知られている酸化アルミニウム(アルミナ)の高純度な単結晶サファイアから製造される。
 単結晶サファイアは、シリコンに比べて、モース硬度が9と硬く機械的強度に優れる上、融点2,053℃と高く、熱膨張率も低いことから、熱や高温に対する耐久性が求められるLED用基板に多く用いられている。また、ダイヤモンドと違い量産性が高く、光学的・化学的・電気的にも優れた特性を持つため、センサーや分析機器などの光学部品に使用され、部品の長寿命化と装置の高生産性に貢献している。
 単結晶サファイアは絶縁体なので、半導体の主材料シリコンウエハーのように、サファイアウエハーそのものが半導体基板や半導体素子の材料にはならない。サファイアウエハーの多くは、半導体製造の薄膜結晶成長技術の一つで、半導体の単結晶の基板上に、新しく単結晶の薄膜を成長させる「エピタキシャル成長Epitaxial growth」のための基板として使用されている。例えば、発光ダイオードLight Emitting Diode(LED)は、サファイアウエハーの上に化合物半導体であるアルミニウムガリウムヒ素を結晶成長させることで作られる。その発光は、電子の質量を、直接、光エネルギーに変換する方法(E=mC2)で行われる。

           

 目次へ

 2)AI(人工知能)開発がもたらす半導体の進化
 AI(Artificial Intelligence人工知能)技術の開発が多方面で飛躍的な展開を見せ、人間の知能を超えるようなAIの進化が実感されてきている。そのAIが人間の知能に、より近づくために必要なのが、半導体の多角的な進化である。AIは、人間の脳を構成する神経細胞(ニューロンneuron)を、半導体の緻密化と高集積化を支えに集積回路として構築し、より人間の脳に近い多様な能力と、人類を遥かに超える計算速度の高速化を実現している。そのためAI技術の発展には、半導体製造技術の劇的な開発が絶対条件となっている。

 主にマイクロプロセッサやチップセット、フラッシュメモリなどの設計開発・製造・販売を手掛けている「インテルIntel」のゴードン・ムーアGordon E. Moore氏は、1968年7月、シリコンバレーの創業期にフェアチャイルド・セミコンダクターで一緒に働いていてロバート・ノイスと共同して「インテル」を創業し、そしてフェアチャイルドで部下だったアンディ・グローブ氏を加えて、3人でIntelを世界最大の半導体メーカーに育てあげた。この名称は「Integrated Electronics(集積電子工学)」に由来すると言われている。
 ゴードン・ムーアが1965年に示した見解に基づくのが「ムーアの法則Moore's law」である。ひとつのICチップ(集積回路)に実装される素子の数は18か月ごとに倍増するというものである。つまり、半導体の性能が指数関数的に向上するというのが「半導体業界の経験則」であった。やがて「ムーアの法則」は、半導体産業の実感でもあれば、それが半導体産業の指針ともなった。
 チップセットとは「ブリッジ」とも呼ばれ、中央演算処理装置Central Processing Unit(CPU)で処理したデータをメモリやグラフィックボード【ディスプレイに画像や映像を映すための部品】やHDD・SSD、キーボードなどの各機器に送ったり、各機器の管理を行なったりするなど、パソコンに搭載されているパーツや機器の橋渡しをする。マザーボードは、CPUやメモリー、グラフィックボードなどさまざまなパーツを取り付けるための重要なパーツで、CPUなどに存在する集積回路である。マザーボードにより1つのコンピュータとして機能することができる。
 チップセット自体は単体のパーツではなくCPUと一体化していたり、マザーボードの部品である集積回路の一部となったりもしている。
 マザーボードは、パソコンの中に大きな基板として一枚入っている。そのマザーボードには、パソコンの中に複雑な回路が張り巡らされて、様々なパーツが接続されている。
 パソコンの中の様々なパーツそれぞれが、それぞれの役割や機能を担うため、そのため部品ごとに電源の供給や相互に通信する回路が必要になる。そのパーツ間の橋渡しをする役割がある。そのためのコンピュータの動作をするために必要であるが、チップセット単体での交換はできない。)

 コンピュータの基本構成は、CPU(中央演算処理装置)・メモリー・I/Oの3つからなり、その3つの関係は、CPUが中心となって動き、データバスdata busを通して、それぞれが接続されている状態になっている。
 バスbusはコンピュータを構成するCPUやメインメモリーmain memory(主記憶装置/Random Access Memory【ラムRAM)など複数の装置を互いに結び、相互にデータを送受信することができる主要なデータの伝送路である。一つのバスは複数の信号線で構成されるが、このうち、CPUがメインメモリーとデータをやり取りするためのバス(信号線の束)を流すものをデータバスと呼ぶ。データバスは、コンピュータ内部で装置間を結ぶ共用のデータ伝送路(バス)の一部で、データ本体の伝送を行う。データバスのバス幅が広いほど、一度に多くのビット数のデータをやり取りできる。
 通常は複数の信号線で構成され、一度の伝送動作で複数ビットを送受信することができる。そのデータバスが、一度の伝送で何ビットを運べるかをバス幅と呼び、大きいほど高速にデータを伝送できる。例えば32ビットバスでは、クロック数(周波数)など他の仕様が同じであれば16ビットバスの2倍、8ビットバスの4倍のデータを一度に伝送できる。
 クロック数とは1秒間で処理できる命令の数を表し、Hz(ヘルツ)という単位で表す。かつて、CPUのプロセッサーは1個しかなかった。そのころは、クロック数の大きさがCPUの性能を表していした。
 CPUは、演算装置と制御装置を統合したコンピュータにおける中心的な処理装置であるが、CPUの演算ビット数とは、一度に処理できるデータバスの幅のことで、ビット数の値が大きいほど演算能力が高くなる。データバスは、CPUとメモリー、CPUとI/Oの間でデータのやり取りを行うための信号線であるから、指定された場所に格納されているデータを扱う。そのやり取りされるデータは、演算するための数値やその演算結果、外部機器からの入力信号や外部機器に出力する信号などである。
 データバスは、プロセッサprocessorなどがアドレスバスで指定したデジタルデータにアクセスする。プロセッサは、プログラムに記述された命令を実行する演算装置、命令や情報を格納するレジスタ(CPUが内蔵している小規模かつ高速の演算装置)、周辺回路などから構成され、コンピュータの中で機械語(マシン語とも言い、コンピュータが読むための言語で、人間には数字の羅列にしか見えず読むことはできない)の命令語を実行しているハードウェアである。パソコンの中のプロセッサとしては、CPUがプロセッサにあたる部品であるため、一般的にはプロセッサという言葉はCPUを指す。
 CPUがアクセスしたいデータのアドレスを主記憶装置に伝えるためのバスを「アドレスバスaddress bus」と呼び、タイミングなどの制御信号を伝送するための「制御バス」は、「コントロールバスcontrol bus」と呼ばれ、これらの組み合わせによってバスが構成される。また、アドレスバスのバス幅が広いほど、大きなサイズの主記憶装置のアドレスが扱える。
 16ビットなら 216 = 65536のアドレス、32ビットなら232 = 4,294,967,296(約4G)のアドレス、64ビットなら 264≒約1,800京(約16E)のアドレスを扱うことができる。ただ、64ビットの場合、理論上は16エクサexa(記号:E,1エクサ=1018=10億ギガバイト【GB】)のアドレスを扱うことが出来るが、あまりにも膨大すぎるので、パソコンなどでは数テラバイト(TB)までとしている事が多い。1 テラバイトterabyte(TB)は、1,000 ギガバイト(GB)または 1,000,000 メガバイト(MB)と同じ容量である。
 1TBは、Windowsノートパソコンや MacBook(256 GB)では 4 台分に相当する。ノートパソコンでは、システムソフトウェアが一定量のストレージstorageの容量を既に消費している。「ストレージStorage」とは、日本語でいうと「保管」「倉庫」「貯蔵」を意味する単語である。デバイスにおいてデータを保管する倉庫、つまりパソコンの「データを長期間保存する場所となる補助記憶装置」のことである。主なストレージにハードディスクHDDやDVD、CDなどがあげられる。容量がいっぱいのまま放置しておくと、新しいデータが保存できなくなるばかりか、スマートフォンやPCの動きが遅くなる。
 一方、メモリアドレス用のデータバスをメモリデータバス、I/O【アイ・オー】アドレス用のデータバスをI/Oデータバスと呼び、メモリデータバスとI/Oデータバスは、独立している場合と共用している場合がある。

 メモリーは、main memoryとも呼ばれ、コンピューター内でプログラムやデータを一時的に保持するための一次記憶装置で、CPUが直接データを読み書きできる主記憶装置でもある。メインメモリーの動作は非常に高速であるが、電源を切ると記憶内容が失われてしまう。そのため、長期的なデータの保持には、外部記憶装置であるハードディスクHDDやフラッシュメモリ、光学ディスク(CD/DVD/ブルーレイディスク)などのストレージstorage(補助記憶装置)が利用される。
 そのメモリーにはアドレスが割り当てられ、このアドレスによってメモリを特定しながら、データのやりとりを行う。アドレスバスは、メモリーやI/Oの場所を指定するための信号線で、データのやり取りを行う場合、データの取り出し先、あるいはデータの格納先を指定する必要がある。この場所の指定がアドレスバスである。
 コントロールバスは、アドレスバスで指定された場所に対して、読み出しを行うのか、書き込みを行うかを指定する信号線で、アドレスバスで指定されたメモリーやI/Oは、コントロールバスにより書き込みを指示された場合は、データバスで送られて来たデータを受け取る。コントロールバスにより読み出しを指示された場合は、データバスにデータ出しをする。

 I/Oは、Input/Outputの略で「入出力」を意味し、キーボード・マウス・ネットワークなど、言わばCPUとメモリ以外の全ての装置のことを指す。コンピュータは情報を入力Inputし、計算結果を出力Outputするという処理を行なっているが、これらの処理を総称してI/Oと呼ぶ。頻繁にデータの入出力が繰り返されることにより、ハードウェアやネットワークにI/O処理の負荷が発生する。ハードディスクなどの記憶媒体に対するデータの読み書きについては「ディスクI/O」、ネットワークに対する入出力については「ネットワークI/O」と、I/O負荷の発生場所によって区別して表記することがある。大容量のデータの送受信でれば、よりI/O性能の高さが求められる。

 マイクロプロセッサmicro-processing unit(MPU)は、CPUを核として、複数の機能・装置をまとめてチップ化したもので、コンピュータにおける演算や制御などの機能を一枚の半導体チップに集積したものである。MPUの中には、グラフィックスプロセッサ(GPU)など、特定の処理に特化したものもある。GPUは、コンピュータに搭載される半導体チップで、画面表示や画像処理に特化した演算装置であるが、画像処理などで多用される特定の比較的単純な数値計算に特化した演算回路を大量に内蔵して、グラフィック描画に関連する機能を豊富に装備し、一度に数百回から数千回の演算を一気に実行することができる。GPU は、3次元的に配置された座標を、2次元平面上の座標に変換する処理(ジオメトリ処理geometry processing)や幾何学的な図形などを繰り返し複製するパターン(テクスチャtexture)や、光の当たり具合などを勘案して明暗のコントラストで立体感を与える技法や、各画素の表示色を決定する処理(シェーディングshading)などを高速に実行する。
 マイクロプロセッサMPUは、メインメモリなどに記録されたコンピュータプログラムを一命令ずつ読み込み、その指示に従ってデータの演算や装置間のデータ転送、他の装置の動作の制御を行う。現在のMPUの演算ビット数は、32ビットが最低ラインで、最近は64ビットに移行しつつあり、64ビットだと0~1844京6744兆0737億0955万1615になる。
 Random Access Memory【ラムRAM】は、CPUが何らかの処理を行ったり、画面上に何かしらのデータを表示したりするときに使う作業用のメインメモリである。RAMは机の広さと表現できる。つまり、メモリが多いほど、一度に多くのアプリが開けられる。
 現在の一般的なPCが搭載するRAMは4~16GB程度で、ゲーム・映像・学習・資産運用など業務などで使われるハイエンドPCは32GB以上のRAMを搭載していることもある。2023年の今日では、グラフィックボードを搭載したハイエンドPC、ハイエンドゲーミングPCなどが注目されている。一方、最近のスマートフォンやタブレットが搭載しているRAMは1~4GB程度。ストレスフリーな作業を実現する6GBを搭載するハイエンドHigh end(ハイスペックhigh spec【性能】)モデルも登場している。
 (High endとは、高性能、あるいは高級を意味する。 ITにおいてはパソコンやサーバ、ルータrouterなどのラインナップの中で最も性能が良く、機能も充実した最上位モデルの製品を表す。) 
 

 Operating System(OS;基本ソフトウェア)によって必要なメモリ量は異なるため、PCとスマートフォンで単純比較できるものではない。ただ、一昔前のPCが搭載していたメモリ量を今の携帯端末が普通に搭載していることになる。
 RAMのデータは頻繁に書き換えられ、電源が切れると作業に使っていた一時データも消える。
 データを保存することができるのはICチップで、内部に大量に敷き詰められた微細な半導体記憶素子の状態を電気信号によって変化させる。記憶内容を保持するために定期的に再書き込み動作(リフレッシュrefresh)が必要な「Dynamic RAM(DRAM)」と、何もしなくても記憶が保持される「Static RAM(SRAM)」がある。

 黒いストライプが入った磁気カードmagnetic stripe cardとは、そのカード上面に貼付けた磁気ストライプテープの中に任意の情報をエンコードencodeできるカードのことである。磁気カードリーダーと呼ばれる端末機器を使用してデータを読み取り認証確認や決済、ポイント付与などを行う。
 磁気カードの良い所はその「安さ」、ICカード(integrated circuit card; ICC)の種類にもよるが一枚あたり半分以下の価格で手に入れる事ができる。安くてお手軽であっても、デザイン性を重視した磁気ストライプが見えないタイプのものや、抗磁力(磁力に強い)やテープ幅も様々な種類がありICカードが普及した今では色々なシーンで使われている。
 例えば、銀行のキャッシュカードやクレジットカード、ホテルのルームキーやガソリンスタンドの会員カードなど、Tポイントカードにも磁気カードが採用されていますね。
 ICカードとは、情報の記録や演算をするために、プラスチックのカードになんらかのICチップ(Integrated circuit=集積回路)を組み込んだカードのことである。国際的にはスマートカードsmart cardやチップカードchip cardとも呼ばれ、日本では、特に演算処理機能を持つものをスマートカードと呼ぶ。今は駅やコンビニ、あらゆるお店でICカードをかざすのが当たり前の時代、磁気カードと比べると記録できる情報量が桁違いに多い事と、セキュリティー性が高く偽造や変造に強い防御措置が施されている。
 単純メモリー型のICカードでも、カード内のデータを保護する回路が搭載され、外部からメモリー内の情報に直接アクセスすることはできない。CPU搭載タイプのICチップでは、さらにデータの処理や保護といった「能動処理」が可能になるので、ひとつのデータをメモリ上に散在させて書き込み、万一、データをコピーされても復号化を困難にし、しかも、外部からのデータ要求に対して特定の処理を施してから送信する、といったセキュリティが働く。

 カード内にRAMや「読み出し専用メモリーRead Only Memory(ROM)」、更にはEEPROMといった半導体メモリを組み込むことにより、情報量が従来の磁気ストライプカードmagnetic stripe cardと比べて数十倍から数千倍になる。  
 EEPROM(Electrically Erasable and Programmable Read Only Memory)は、コンピュータで使用される半導体メモリの一種で、基本的には記録されている内容を書き換えることができない読み出し専用だが、「Erasable」とは「消去可能な」意味である、電気的にデータを消去して書き換えることができるメモリのことである。EEPROMを更に発展させ、全消去ではなくブロック単位でデータを消去して書き換えることができるものをフラッシュメモリと言う。フラッシュメモリには「USBメモリ」やデジタルカメラなどで使用する「メモリカード(SDカード)」などがある。

 ちなみに、10年経つと素子の数はおよそ100倍になる。実際のところは、1971年に「Intel」が発表した世界初の4ビットプロセッサ「4004」と比べると、2018年に発表された「Intel Core i7 8086K」の処理能力は実に46,300倍、単純計算では13時間かかっていた処理が1秒でできるようになったという。
 その一方で、半導体の高集積化には物理的な限界が近づいている。プロセッサの処理速度の向上にともなって消費電力の増大や、発熱などの問題が無視できなくなっている。このような物理的に、進化の限界に直面している半導体が、一層進化していくためには、現在ではパソコンのCPUでも使われるようになったマルチコアmulti-core、クァッドコアquad-core processorなどの「並列計算」を行うプロセッサである。
 マルチコアとは、1つのCPUパッケージ内にプロセッサコアが2つ以上ある状態のことである。クアッドコアでは、1つのシリコンチップに4個のCPUコアを搭載したCPUである。クアッドコアはマルチコアの一種であり、CPUコアが2個の場合はデュアルコア、数十コアから数千コア以上が集積されている場合はメニーコアmanycoreなどと呼ばれている。
 CPUコアの数が多ければ多いほど、割高にはなるが、処理速度が向上する。この場合、マルチコアプロセッサは、チップサイズが大きくなる傾向にあるが、複数の処理を並列に実行することにより、消費電力や発熱量を抑制しながら性能向上を進めることが可能となる。
 これまでは、処理速度を早くすることで性能を上げてきたプロセッサであったが、「並列計算parallel computing」により複数の処理を同時並行で行うことにより、性能を上げようとする一群が近年の主流となっている。ちなみに前述の「Intel Core i7 8086K」はコア数が6、スレッド数が12。この場合、12の作業が並行して処理される。
 それにより、GPU(Graphics Processing Unit)とよばれる、主に画像の描画、画面表示などに威力を発揮する半導体チップで、特に、3次元グラフィックスの描画や動画の圧縮・展開など高速な演算が必要とされる場面で本領が発揮される。

 目次へ

 3)クライアントPC
 通常のPCは、PC単体で機能が完結するが、パソコンを使い、通常、インターネットをするということは サーバーとクライアントの関係のなかにいることでもある。クライアントPCとは、クライアント/サーバシステムにおいて、サーバーにサービスを要求し、サーバからのサービスを受け取るPCのことである。クライアント/サーバシステムでは、サービスの提供側と享受側で役割分担がある。

 企業では、社員に配布するPCとして利用されているクライアントPCが担うのは、インターフェースとしての役割である。入力データや処理要求をサーバに送信し、サーバから受け取った処理結果をユーザーに提示する。一方、サーバはユーザーと接触することなく、クライアントPCを介して受け取った要求の処理のみ行う。
 例えば、社内のファイルサーバやメールサーバにアクセスする場合、アクセスしたPCがクライアントPCで、データ処理を行うのは各サーバであり、クライアントPC単体ではない。一般的に社員が使っているクライアントPCのインターネットは、基本的にWebサイトで閲覧サーバーのソフト(Webブラウザbrowser)とクライアントのやり取りである。ひとつのサーバーに対して、複数のコンピューターからアクセスされている。ネットワークを介して何らかのサーバーに接続しているため、クライアントPCと呼ぶ。
 PC内にはOSやアプリケーションなど、多くのソフトウェアが保存されている。これらが適切に管理できていなければ、多くの問題と困難が発生する。 ソフトウェアのバージョンを管理できていないと、情報共有に支障を来す。さらに、古いバージョンのまま放置しておくとソフトウェアの脆弱性により、サイバー攻撃の被害に遭う可能性が高い。
 また、ソフトウェアが従業員の手で違法にコピーされ使われれば、法的問題に発展する。特に、近年自社の製品が正しくユーザーに使われているか調査するITベンダーvendor(IT関連製品の販売業者)も増えている。トラブルを避けるためには、適切なライセンス管理が必須である。

 インターフェースとは、接点・橋渡し・界面という意味である。機能や形状の異なるもの同士の接点・境界になっている部分を指す。クライアントPCが担うのはユーザーインターフェースとしての役割である。入力データや処理要求をサーバに送信し、サーバから受け取った処理結果をユーザーに提示する。一方、サーバはユーザーと接触することなく、クライアントPCを介して受け取った要求の処理のみ行う。
 例えば、社内のファイルサーバやメールサーバにアクセスする場合、アクセスするPCがクライアントPCである。そのデータ処理を行うのは各サーバであり、クライアントPC本体ではない。通常、一般的に社員が使っているPCの大半は、ネットワークを介して何らかのサーバーに接続している。そのためクライアントPCと言う。
 PC内のデータを適切に処理し管理するためPC内にはOSやアプリケーションなど、多くのソフトウェアが保存されている。それが、ソフトウェアのバージョンが適切に管理されていないと、社内の情報共有に支障が生じる。古いバージョンのまま放置されていれば、ソフトウェアの脆弱性により、サイバー攻撃に無防備状態になる。
 一方、ソフトウェアが従業員の手で違法にコピーされ流出されれば、経済的にも法的にも大きな問題になりかねない。 しかし、社内にある多数のPCの状態をすべて管理するのは困難である。また、余分なPCにかかる費用は本体の購入費用だけではなく、使わないPCにもなんらかのソフトウェアがインストールされていれば、そのライセンス費用も発生している。すでに、充分なライセンスがあるはずが、それに気づくことなく、新しいライセンスを購入してしまう可能性もある。
 現在ではほとんどのPCがクライアントPCとして使われている。IT資産の中でも、クライアントPCは台数が多く管理が複雑である。そのためクライアントPC管理には、十分な知識が不可欠となる。

 コア数とはCPUに内蔵しているプロセッサー(コア、演算回路)の数を表わす。かつてCPUはひとつのプロセッサーだけで処理を行っていたため、プログラムなどの命令を順に処理するしかなかった。しかし近年のCPUは複数のコアを内蔵しているため、命令を同時に処理できるようになっった。そのため処理能力が大幅に向上した。
 コアとは、CPU内部にある演算回路のことで、スレッド(処理命令の単位)とは、1個のコアが同時に処理できる作業単位のことである。コア数とスレッド数が増えると、同時に複数の処理が可能になり処理能力が向上する。従来、1個のCPUコアは、一度に1つのスレッドしか処理できなかったのを、1個のコアで2つのスレッドを同時に処理する機能を持つようになった。そのため、4つのコアを搭載するCPUでは、同時に8個のスレッドを処理が可能になる。今では、高性能CPUでは16コアも搭載している。
 通常クライアントPCに搭載されるCPUのコア数は2~6コア、サーバ搭載のものでも20~30コア程度であるのに対して、グラフィックスプロセッサ(GPU)は、負担が大きい描画処理に特化した部品であるため、コア数は数千コア程度にも及ぶ。

 クロック数とは1秒間で処理できる命令の数を表し、Hz(ヘルツ)という単位で表す。CPUのプロセッサーがひとつしかなかったころは、クロック数の大きさがCPUの性能を表していた。しかし、複数のコアを搭載できるようになると、クロック数だけではCPUの性能を測ることはできない。3GHzでコア数2のCPUより、2GHzでコア数4のCPUのほうが効率よく命令を処理できて高性能と言える。クロック数はCPUの性能を表す重要な数値であったが、それだけで性能の高さを示すことはできない。

 目次へ

 4)ニューラルネットワーク
 パソコンで使われるデフォルトdefaultとは、「初期設定」・「初期値」・「既定設定」・「既定値」など、最初の設定のままで何もしていない状態を言う。例えば、デスクトップの背景画面は自分の好きな画像などに設定できるのが、何もしないそのままの状態で使うことを、「デスクトップ画面をデフォルトのまま使う」などと言う。
 また、Windowsの初期設定では「自動更新」となっている。その後のWindows Updateのデフォルトでも自動更新」と言う。言わば、自分でカスタム設定をしないで、初期状態・初期設定のままであることも「デフォルト」と言う。
 デフォルト設定に関してありがちなのが、フリーソフトなどをインストールした後で、「気がついたらインターネットエクスプローラにツールバーが勝手に表示されている」ことがある。これは、フリーソフトなどの「デフォルト設定」が「ツールバーを利用する」になっているからである。
 ソフトをインストールする時には、各項目をよく理解して、チェックボックスがあれば不要な場合はチェックを外す、必要な場合はチェックを入れる、などの対応をすることが必要になる。
 (金融関係では「デフォルト」とは、「債務不履行」という意味で使う。)
 英 単語のスクリプトとは、台本、脚本、原稿、手書き、筆記体などの意味を持つ。
 ITの分野では簡易なコンピュータプログラムをスクリプトと呼ぶことが多い。スクリプトとは、コンピュータが理解できる言語への変換作業を省略して、簡単に解釈実行できるようにしてある簡易プログラムのことである。

 ソフトウェアの設計などで、コンピュータに命令を与える際には、通常、人間が普通に読み書きできる言語から、コンピュータが理解できる言語、いわゆる機械語への変換が必要となる。
 スクリプトとは、コンピュータが理解できる言語への変換作業を省略して簡単に解釈実行できるようにした簡易プログラムのことを言う。スクリプトに用いられる言語は「スクリプト言語scripting language」、または「簡易プログラミング言語」と呼ばれている。
 アプリケーションソフトウェアを、すばやく作成することができる一方、使える機能は限られるため、小規模なプログラムの作成に主に用いられている。
 スクリプトとは、英語では「台本・脚本」の意味、その簡易的な言語記述方法を指してそう呼ばれるようになったプログラムの種類の一つ。人間が読み書きしやすいプログラミング言語で書かれたプログラム(ソースコード)を即座に実行できるようなものをスクリプトという。
 近年では、ホームページ制作において、HTML言語だけでは実行できない動的な機能を利用するための簡易的なプログラムのこともスクリプトと呼ぶ。その代表的なものにJavaScript、VBScript、パールPerlなどがある。
 Perl は、Web開発に用いられることが多く誰でも利用できるが、最近は利用頻度が少なくなってきている。より使いやすく分かりやすい新しいプログラミング言語へのシフトが進んでいるからである。
 例えば、Webアプリケーションの開発に使われるRubyは、Perlの影響を大きく受けて生まれた言語である。Ruby on Railsというフレームワークを合わせてWebアプリケーション開発を学ぶ。また、書きやすさや読みやすさを追及して生まれたパイソンPythonは、覚えなければならない構文が少なく、Perlよりも簡単にコードが書ける。

 通常、プログラミング言語で書かれたコードはコンピュータが直に解釈して実行することができないため、機械語(マシン語)へのコンパイル(翻訳)や必要な外部プログラムのリンクなどの操作を行ない、実行可能ファイルを作成する作業工程が必要となる。
 スクリプトではこの工程を専用のソフトウェア(インタプリタや仮想マシンなど)が自動的に行なってくれるため、プログラムを作成、あるいは入手後、即座に実行を始めることができる。面倒で専門的な作業が不要な一方、機能や性能に限定された制約や制限がある。
 多くのスクリプトは何らかのソフトウェア上で実行され、そのソフトの持つ機能を呼び出して作業を自動化し、機能を拡張するために用いられる。言語によっては通常の実行可能プログラムと同じように、基本ソフトウェアのオペレーティングシステムOperating System(OS)などの上で独立して起動できる実行環境が用意されている場合もある。
 著名なスクリプト言語としては、UNIX系OSのシェルで実行されるシェルスクリプトshell script、Webブラウザで実行されるJavaScript、Webサーバで実行されるPHPやJSP、ASPなどがある。

 ニューラルネットワークとは、脳内の神経細胞neuron(ニューロン)のネットワーク構造を模した数学モデルである。ニューラルネットワークは入力を抽象化層に分解する膨大な量の例となるデータで学習させることにより、人間の脳と同じように、ニューラルネットワークは、音声や画像のパターンを認識することができる。
 その動作は、ネットワークの個々の要素の接続方法と、それらの接続の強度または重みによって定義される。この重みは、ニューラルネットワークがタスクtask(今やるべき仕事)を正しく実行するまで、指定された学習のルールに従い学習中に自動的に調整される。
 結合されたニューロンの2つまたは3つの層で動作するニューラルネットワークは、浅いニューラルネットワークとして知られている。
 一般的に、ニューラルネットワークでは、特定の入力によって特定のターゲット出力が得られるように、調整または学習が行われる。
 ニューラルネットワークは、パターン認識・識別・分類・音声・映像・制御システムなど、さまざまな分野で複雑な機能を実行するよう、従来のコンピューターや人間には困難な問題を解くように、ニューラル ネットワークの学習を進める。
 ツールボックスを 4 つのレベルに分けて使用することで、初級ユーザーからエキスパートにまで対応でき、新しいユーザーはシンプルなツールを使用することで特定のアプリケーションの概要を把握することができ、研究者はネットワークをカスタマイズcustomizeすることで最小限の労力で新しいアーキテクチャを試すことができる。
 カスタマイズとは、要求に合わせて直す、特注で作る、といった意味の英単語で、ソフトウェアの場合、あらかじめ設定や構成をある程度変更できる機能が内蔵されている場合があり、利用者はこれを変更して自分に合った設定にすることができる。
 また、業務用のソフトウェアなどでは、コンピュータプログラムそのものを追加・修正するなどして、より根本的かつ大規模に改修を行う場合もある。

 1984年に設立されたMathWorksは、米国マサチューセッツ州ネイティックNatickに本社を置き、5000か国で16人以上の従業員を擁する非上場企業である。社員 5,001〜 10,000人規模と言う。
 MathWorksは、数学計算ソフトウェアの大手開発者である。主な製品は、MATLAB行列実験室MATrix LABoratoryの略)とシミュリンクSimulinkがある。
 AI(人工知能)のためのテクニカルコンピューティングの言語であるMATLABは、数値解析ソフトウェアとして、行列演算・ベクトル演算・グラフ化や3次元表示などで、圧倒的に速いプログラミング環境を作り出すことができる。
 Matlabは、もともと行列演算を容易にに行えるアプリケーションとして誕生した。その後、様々な点が強化され、今では行列演算はもとより、グラッフィクス機能やグラフィカルユーザーインターフェースGraphical User Interface (GUI )などまで充実したパッケージとなっている。
 MATLAB を起動するには、デスクトップの「MATLAB-アイコン」 をダブルクリックすと、次の初期ウィンドウが開かれる。
 (ユーザー‐インターフェースuser interface【UI】とは、使用者がコンピューターを操作する上での環境や扱いやすさ、操作感。携帯電話やデジタルカメラなどの電子機器の操作に対しても使われる。
 インターフェース interfaceとは、接点、境界面、接合面、仲立ち、橋渡しなどの意味を持つが、IT分野では、二つの主体が接続・接触する箇所や、両者の間で情報や信号などをやりとりするための形式や手順などを定めた決まりごとを意味する。)

 GUIでは、コンピュータの表示・操作体系(ユーザーインターフェース)の分類の一つで、情報の提示に画像や図形を多用し、基礎的な操作の大半をマウスやタッチスクリーンなどによる「デスクトップdesktop」上の位置の指示により行うことができる。
 パソコンなどでは、オペレーティングシステム(OS)が管理する「デスクトップ」と呼ばれる初期画面が表示される。その画面上にアイコンやメニュー、ボタンといった絵や図形に補助的な文字情報を組み合わせた操作要素が表示され、これをマウスやトラックパッド、タッチパネルなどのポインティングデバイスpointing device(位置入力装置)で選択してコンピュータへ指示を与える。
 また、オプション として用意されている Toolbox を合わせて使うことにより、様々な専門分野への応用も可 能となりました。その分野は、機械工学、電気・電子工学はもとより、数学・物理学や情 報学、また経済学・統計学・心理学など文系の分野に至るまでと、幅広く範囲が広がって います。
 世界中のエンジニアや科学者は、発見・革新・開発のスピードを加速するために、その製品に頼っている。つまり、MATLABの記号数式処理ができる豊富なToolboxを使用する事で複雑な演算や、問題を解決したり目標を達成したりするための計算方法や処理方法であるアルゴリズムalgorithmを使い簡潔に記述することが迅速にできるようになる。
 AIや機械学習の基盤となる重要な要素となるアルゴリズムは、その機械学習アルゴリズムを理解した上で、適切に選択・実装することで、膨大なデータからパターンを学習し、予測モデルや分類を再構築することができる。
 また、AIへの倫理や先入観などのバイアスbias問題にも対処するために、アルゴリズムの理解を極め、適切な再設計が重要となっている。
 MATLABは、自動車・エレクトロニクス・エネルギーなど様々な分野で活用されている。

 ライブラリlibraryとは、「システム内の要所要所で使える便利なシステム群」のことを言う。
 ある特定の機能を持ったコンピュータプログラムを、他のプログラムから呼び出して利用できるように部品化し、そのようなプログラム部品を複数集めて一つのファイルに収納したものがライブラリである。
 様々なプログラムが共通して利用される汎用性の高い機能などが、ライブラリとして開発・提供されることが多くなり、しかも、標準的なライブラリはOSやソフトウェア開発環境の一部として添付されてもいる。
 これにより、プログラミング業界では、なんでも自前で作るということがほぼなくなったのも、このライブラリが発達したおかげである。
 行列計算の豊富なライブラリを持つ高性能なテクニカルコンピューティング言語が、標準でも数多く共有されているが、それ以上のデータ解析や統計、アプリケーション展開などが必要な場合にはToolboxと呼ばれる拡張パッケージをインストールすることで、MATLABの機能の高度化を図ることができる。
 MATLABとToolboxは総合してMATLAB製品ファミリと呼ばれる。これには、ニューラルネットワークと MATLAB に関する知識のレベルに関係なく、ニーズに適したToolbox機能が用意されている。

 目次へ

 5)ディープラーニング
 ツール自体に、ディープラーニングDeep Learning Toolboxやソフトウェアの学習プロセスの重要な部分が含まれている。ディープラーニングには、AIの機械学習の方法の1つでもあり、深層学習と呼ばれることもある。AIに情報処理の方法を教えることで、他の学習方法よりデータ処理のための階層を増すことで、AI領域の幅や種類が格段に増え、複雑な判断や細かな処理ができるようになる。
 例えば、「画像認識を活用した「自動運転」・「顔認証」・「不正なカード利用の検知」、「画像診断によるがんの発見」・「クラウドサービスを活用することで、コストを抑えてAIの学習を進める」・「機械の最適な部品交換時期の提案」・「道路の損傷の程度を画像認識で分析し補修の要否を判断」など、また、化学製品の開発で有名な「三井化学株式会社」では、製造するガス製品の最終品質管理にディープラーニングを取り入れている。
 ガス製品の最終的な品質判断は、経験豊富な技術者でないと困難であったため、誰もが品質管理をできるようにAIによる分析を導入している。AIソフトウェアによる検査は、判定の基準を可視化することで、複数拠点の「目合わせ」が不要なるだけでなく、作業員間や工場間の「ゆらぎ」をなくし、よりロジックが明確な検査工程を築くことが可能になる。
 ニューラルネットワークについての経験や、MATLAB の使用に関する高度な知識を必要とすることなく、重要な応用分野の問題を解くためのニューラルネットワークを設計するプロセスが示される。
 (クラウドサービスcloud serviceとは、コンピューティングリソースや、ユーザの業務や目的に応じて作成されたアプリケーションなどを、インターネットのネットワーク経由で利用するサービスの総称である。
 従来、システム構築の際には、必要なハードウェアやソフトウェア、データなどは、利用者自身が保有し、管理・運用していたが、クラウドサービスにより、初期投資やネットワークの管理や運用工数を気にする事なく、手軽に様々なサービスが利用できるようになった。
 その便利と手軽さの反面、クラウドサービス利用に際し、クラウドサービスの種類や特性を正しく理解して、適切なサービスを選択する事が重要となっている。)


 通常、プログラミング言語で書かれたコンピュータプログラム(ソースコード)は、人間にとって読み書きしやすい形式の言語によって記述ではない。また、コンピュータ内部のマイクロプロセッサ(MPU/CPU)にそのまま与えても、直に解釈してプログラムとして実行することはできない。コンピュータの理解できる機械語(マシン語)のプログラムへ変換しなければならない。この変換を一括して行うことをコンパイルcompile(翻訳)と呼ぶ。ソフトウェアの開発時などでは、コンパイルに必要な外部プログラムを、リンクなどの操作導入で、実行可能ファイルを作成する。
 ニューラルネットワークを使用すると、MATLAB の単純なスクリプトscriptと高度なスクリプトの両方を自動的に生成できようになる。スクリプトは、人間が読み書きしやすいプログラミング言語で書かれたプログラム(ソースコード)であるため、即座に実行できる。
 スクリプトでは、専用のソフトウェアが自動的に働くため、ソースコードを作成あるいは入手後、即座に実行することができる。ただ、面倒で専門的な作業が不要な一方、機能や性能に一定の制約や制限があることが多い。そのようなプログラムを記述するための言語を「スクリプト言語scripting language」と言う。
 多くのスクリプトは何らかのソフトウェア上で実行され、そのソフトの持つ機能を呼び出す作業を自動化し、更に機能を拡張するために用いられる。スクリプトによっては通常の実行可能プログラムと同じように、オペレーティングシステム(OS)などの上で独立して起動できる実行環境が用意されている場合もある。
 これらのスクリプトを使用して、ツールによって実行されるステップを再現できるだけでなく、既定の設定とオーバーライドoverrideすることもできる。これらのスクリプトには、カスタマイズcustomize(ユーザーの好みと使い方に合わせて、システムやソフトウェアの機能などを設定し直すこと)されたコードを作成するためのテンプレートtemplate(頻繁に利用する定型のフォーマット、その定型パターンの一部を変更して使用する。)が用意されている。
 (ITの分野でのオーバーライドとは、ある場所で定義された設定や手続き、属性などを、別の定義で上書きすることを指すことが多い。デフォルト設定default settings【開発・製造当初から設定された、使用開始時に用いられる機器やシステム、ソフトウェアに最初から組み込まれた設定値】の一部を変更したり、対象の複製や派生などに伴って受け継いだ設定値などを変更する場合などが該当する。
 プログラミング以外でも、ある対象にあらかじめ定義された設定などを、利用者が独自に書き換える操作などをオーバーライドと言う。)


 目次へ

 6)データ拡張
 ニューラルネットワークを使用するディープラーニングDeep Learning Toolboxは、ディープラーニングをするためには必須のToolboxである。そのディープラーニングには、正確なモデルを構築するために、多様で包括的なデータを用いることが重要となる。特にディープラーニングによる画像認識では、大量の画像データを必要とする場合が多い。そのため、現状で用意できるデータセットからデータ数を増やす方法を考える必要が生じる。
 MATLABのデータ拡張data augmentationによって、学習のためのサンプル数とそのサンプルのバリエーションを増やすことができる。豊富で多様な分類のため、画像データ拡張の手法を使用して、学習画像を様々に回転・左右平行移動・上下平行移動、そして拡大・縮小などで変換することで、より多くの学習画像を作成する。
 AIシステムとりわけ深層学習 Deep Learningの領域では、非常に高性能な手法が日進月歩で続々と登場しており、様々な産業分野や専門分野においてその活用が注目を集めている。
 Data Augmentationにより画像に対して様々な変換を施すことで、データを水増しする。
 Data Augmentationとは、既存のデータセットから様々なテクニックを用いてデータ量を数倍~数十倍にまで拡張する方法である。 例えば1枚の画像に対して、反転・輝度変更、それに加えて、Data Augmentationを利用することで、その高い拡張性能力から豊富なデータ形式への出力が可能になる。
 その豊富な画像処理技術ノウハウを活用して、様々なデータ拡張のアプローチ手法を駆使する。 画像データの補正に加え、背景の差し替えによる画像合成など、条件に応じて多様かつ高度なデータ拡張を行う。
 AIモデルの開発経験豊富なエンジニアによって、最適なデータ拡張手法(補正・画像合成など)が提案実施されている。
 適切なデータ拡張により、コストを抑えた学習モデルの精度向上を実現している。
 研究者向けにスピーディかつ高品質なデータ拡張サービスが提供されている。そのためToolboxの画像から何かを特定したり、 画像から何かを推定したりすることができる。特に顔認識では、MATLABを使えば容易にできてし、 サンプルも多数撮られているのでプログラミングしやすい。
 人の画像から人間の骨格を推定するプログラムも主流になっている。あらかじめ用意された学習用の画像ファイルを、 Deep Learning Toolboxの機能を使って学習させ、学習後も、 Deep Learning Toolboxの機能を使って認識させたい画像ファイルを 読み込むことで推定結果が得られる。
 顔認証とは、顔の画像や映像から、人を識別する生体認証技術の一つである。近年、ディープラーニングにより認証精度が向上し、幅広い分野で普及してきている。顔認証のための身近な例では、スマートフォンやPCへのログインなどに使われている。
 物理的な鍵やパスワードなどは不要なので、認証キーの窃取紛失や忘却のリスクがないばかりか、セキュアが向上する。また、指紋認証や虹彩認証など他の生体認証と比較しても、最低限カメラがあれば認証可能であるため、専用装置が不要で、比較的安価に導入できる生体認証方式と言える。
 一方で、十分な対策がなされていないと他人の顔が映った写真や映像などで、簡単に他人になりすまして認証されてしまうという課題がある。
 コンピューター・ビジョンでは、コンピューターとシステムがデジタル画像や動画、その他の視覚データから意味のある情報を導き出し、その情報に基づいて対処し、推奨を行うなどであれば、AI分野の領域となる。コンピューター・ビジョンは、人間のビジョンとほとんど同じ機能有し、人間の視覚には、オブジェクトを区別する方法、オブジェクト間の距離、オブジェクトの動向、その画像に何か問題があるかどうかを把握するための学習の蓄積という大きな利点が伴う。
 「画像認識」とは、画像の中に何が写っているのかを解析する技術のことであるが、近年、アルゴリズムの進化により画像認識技術もめざましい発展を遂げている。コンピューター・ビジョンは、これらの機能を実行するように機械に学習させれば、網膜・視神経・視覚野などの人間の能力を超えて、カメラ・データ・アルゴリズムを使用して、はるかに短時間で実行できるようになる。 製品の検査や生産資産の監視を行うように訓練されたシステムは、数千の製品やプロセスを瞬時に分析し、人では知覚できない欠陥や問題すらも認識することができる。
 MATLABのSimulinkとは、Mathworks社が開発・販売を行う数値解析・3Dモデリングソフトウェアである。また、自動車のエンジンやブレーキなどを制御する為のECU(Electronic Control Unit)に搭載されるソフトウェアも開発している。マイコン制御やCAN/LINなどの通信を行うプラットフォーム部分を得意としており、MATLAB/Simulinkによるモデルベース開発Model Base Development(MBD)にも対応している。
 また、ECU開発を効率化するツールも提供している。この例では、現在のビデオ フレーム内の顔の位置を検出し、顔の特徴を特定し、その特徴を追跡するシステムをSimulinkで設定する。出力ビデオフレームには、検出された顔と追跡対象の特徴が含まれている。カスケード型オブジェクト検出器では、Viola-Jones 検出アルゴリズムと、検出用に学習済みの分類モデルを使用する。顔の検出後に、「追跡に適した特徴 (Good Features to Track)」手法を使用して顔の特徴点が特定される。顔が表示されない場合やフォーカスが合っていない場合は、システムで顔の取得し直しと追跡の実行が試みられる。

 ディープラーニングを使った画像認識の例では、医療現場などでは、 患者のCT画像からガンを特定するプログラムが急速に採用され始めている。
 少数の正解データを集積して構築されたAI(人工知能)による、早期胃がんの高精度な自動検出法が確立された。ディープラーニングを画像中の物体検出へ応用する場合、一般には数十から数百万枚の正解画像が学習用データとして必要であるが、早期胃がんの場合、良質の正解画像を大量に収集することは困難である。そこで、少数の正解画像から小領域をランダムに切り出し、さらにデータ拡張技術を利用して画像を約36万枚まで増やした。その画像をコンピュータに学習させた結果、陽性的中率(コンピュータが「がん」と判断した画像中、実際に「がん」であった割合)は93.4%、陰性的中率(コンピュータが「正常」と判断した画像中、実際に「正常」であった割合)は83.6%であった。さらに、早期胃がんの有無に加えて、その領域まで高精度で自動検出することに成功している。

 さらに、従来のコンピューターや人間には困難な問題を解けるように、ニューラル ネットワークの学習を行うこともできる。ツールボックスでは、エンジニアリング、財務、およびその他の実際的なアプリケーションを構築する。またはこれらのアプリケーションで使用されるニューラル ネットワーク パラダイムの使用に重点を置いている。
 従来の機械学習では、推論をする際に判断基準となる、例えば顔であれば口・目などの配置や色、輪郭などを人間が設計して与えていたが、ディープラーニングでは、その判断基準を学習により自ら生成し判断する。
 この仕組みが大きなパラダイムシフトparadigm shiftであり、ディープラーニングを利用した画像認識や音声認識が突出した精度を満たしたことで、ディープラーニングは一躍注目の技術となった。
 (「パラダイムparadigm」は、ギリシャ語で範例を意味するparadeigmaに由来する。
 元々は語形変化の一覧表などを指す際に使われていたが、1962年に米国の科学史家トーマス・クーンが著書「科学革命の構造」において、科学的研究の土台となる前提を「パラダイム」と呼び

 「広く人々に受入れられている業績で、一定の期間、科学者に、自然に対する問い方と答え方の手本を与えるものである」と新しい意味を与えた。
 そこから「ある時代に特徴的な思想、価値観」「常識」などと解釈が拡大され、科学だけでなく経済やビジネスなどきわめて広い分野で使われる言葉となった。

 「パラダイムシフト」とは、その時代迄に当然と考えられていた物の見方や考え方が劇的に変化することを指すが、そこから派生して 「定説をくつがえす」「ステレオタイプ【多くの人に浸透している固定観念や思い込み】を捨てる」「革新的なアイデアによって時代を変える」 というように、今では広い意味で使われている。
 例えば、ビジネスにおいてパラダイムシフトparadigm shiftに対応するということは、これまでのアプローチをアップデートしていくことを前提にする。)

 一方で、ディープラーニングのネットワークは、多層で構成され、数百層を持つこともある。いずれも入力データから直接特徴抽出を行い、学習することができる機械学習の技術である。ディープラーニングは、AI(人工知能)の急速な発展を支える技術であり、その進歩により様々な分野への実用化が進んでいる。
 近年ディープラーニングが注目を集めているのは、ディープラーニングが、従来の技術では不可能だった高いレベルの認識精度に到達しているからである。
 ディープラーニングは、テキスト翻訳、音声認識のような複雑な解析能力が必要とされる分野に特に適合している。また、先進運転支援システムAdvanced Driving Assistant System(ADAS)や車線分類や交通標識認識などのアプリケーションソフトにおいても使用される重要な技術である。ディープニューラルネットワークのひとつである、深層学習に幅広く応用されている「畳み込みニューラルネットワーク」は現在広く使われているモデルである。
 「畳み込みニューラルネットワーク」のネットワークは、多層で構成され、数十から数百の層があり、各層が画像のさまざまな入力データから特徴点検出や特徴量抽出を行い学習する機械学習の技術である。
 それぞれの学習画像に解像度が異なるフィルターが適用され、各畳み込み画像の出力が次の層の入力として使用される。フィルターは、明るさやエッジedge(画像の輝度が鋭敏に変化している箇所をエッジといい、エッジを特定する手法をエッジ検出と言う)などの画像に対して演算する流れで始まり、やがて損失関数Loss functionの最小化のために重みを調整する過程で、フィルターの値は自動で決まる。また、画像を正しく認識するためには、画像からエッジや色といった特徴を適切に抽出できるフィルターが必要であるため、結果として、隣接する画素値の縦方向・横方向の変化率を計算し出力する微分フィルタdifferential filterや、画像の濃淡変化と局所的な形状変化の違いを捉えるガボールフィルタGabor filter(画像処理のテクスチャー解析などに使われる線型フィルタの一種)に似たフィルタも見らる。ガボールフィルタは、虹彩認識や指紋認証にも応用されている。
 (機械学習における損失関数とは、機械学習モデルが算出した予測値と、実際の正解値のズレを計算する関数であり、その差が小さいほどAIの精度が高いことになる。そのAIの精度を高めるためには、機械学習lossを限りなく小さくすることにある。
 ガボールフィルタは、ハンガリー系イギリス人の物理学者ガーボル・デーネシュに因む。オーストリア=ハンガリー帝国でユダヤ人の家庭に生まれたガーボルは、ナチスの迫害を逃れるためにイギリスに渡った。
 電子顕微鏡の解像度を向上させるための研究で水銀燈光源に何重にもフィルターを重ねる実験を行っていたガーボルは、後にノーベル物理学賞に繋がるホログラフィー現象を発見する。ホログラフィーとは3次元の像を写す事ができる技術で、紙幣の偽造防止のために広く用いられている。)

 目次へ

 7)グラフィックスプロセッサ(GPU)
 ここ数年、機械学習を中心としたAI(ArtificialIntelligence:)技術の開発がすさまじい。この AI 技術は、データ・アルゴリズム、そしてハードウェアなどで、産業界を革新し、新たな産業を創造するテクノロジーとして最重要な基盤となっている。特に、ハードウェアが直面している課題 として、機械学習が要求する膨大で高速な演算に直面し、従来の CPU アーキテクチャが最適ではないことが明らかになった。その一方、常に求められる半導体の微細化により、その性能の向上のペースが鈍化している。こうした中で、新たなアーキテクチャに基づくAI 演算のための専用ハードウェア(これを AI チップと呼ぶ)への期待が高まっている。
 AIの演算処理が一段と高速化したAIチップによって、機械学習による画像認識や音声認識、ディープラーニング(深層学習)による膨大な演算処理が可能になっている。AIチップの演算処理能力は、膨大なデータの統計から特徴の組み合わせパターンを作り出す「学習プロセス」と、それにより識別や分類したいデータを、その学習で生成したパターンの推論モデルに当てはめて、結果を導く「推論プロセス」にまで及ぶ。
 特に、音声認識や画像認識の分野では、人間を遥かに超えた能力を実現している。これを支えるAI 技術の進化が、現代.社会が要求する「機械学習ア ルゴリズム」の根幹を支え続けている。その演算処理には、膨大な計算能力が要求されている。そのため、現時点ではデータセンターなどの限られた場所で運用されている。
 重要なことは、今後想定される金融・サービス・工業・医療・農業など現代の多岐にわたるAI による応用分野の拡大に向け、その基盤となるハードウェアの能力向上が、現在の開発者に常に突き付けられる大きな課題となっている。
 機械学習で要求される演算処理の概要とハードウェアの課題を説明するとなれば、新たな未知のデータに 対し、学習結果を基に答えを導き出す処理である。
 その機械学習の根本支えるニューラルネットワークは、ヒトの神経回路網の構成や動作を抽象化したモデルであるため、多数の人工ニューロンから構成されている。入力層・隠れ層・出力層などに階層化され、隣り 合う層に属するニューロン同士は互いにある重みでつな がっている。
 ディープラーニングとは、 隠れ層が多数存在する多層構造のニューラルネットワークを用 いた機械学習のことである。そのニューラルネットワークは、人工 ニューロンによって構成されている。人工ニューロンでのGPUよる.高速演算処理が、いつの間にかAI(人工知能)の機械学習、なかでも人間の脳を模した多層なディープニューラルネットワークの深層学習に利用されるようになった。
 それでも、画像の描画では、GPUのほうが圧倒的に優れている。また、ディープラーニングのように同じ作業を大量にこなす必要がある場合にもGPUが適している。
 ただ、通常のパソコンのように、プログラムを読み込みながら命令を実行し、メモリやディスク、各種入出力装置を制御していく場合では、多種多様な命令を順番にひとつずつ処理していく必要があるので、GPUの並列処理のメリットが発揮できない。パソコンやサーバの処理についても、今後もCPUが担っていくことには変わりはない。

 アメリカ・カリフォルニア州にある「NVIDIAエヌビディア)社」は、GPUを主力製品として開発・販売する半導体メーカーである。スーパーコンピューター向けの演算プロセッサなども手掛けている。 オフィス向けに設計されたNVIDIA DGX Station は、最先端の AI 技術を搭載した世界初のオフィス向けに設計されたスーパーコンピューターである。400個のCPUに匹敵する計算能力がありながら、消費電力はCPUクラスターの20分の1以下、騒音レベルは一般的なワークステーションの10分の1以下に抑えられている。
 NVIDIA DGX Station には、AI 研究をスタートできるプラグインが用意されている。わずか1日で、パワーアップしたディープニューラルネットワークのトレーニングが体験できると言う。まさに時代の先端をゆくトップランナーと言っても過言ではない。
 実際にこれまで、AI(人工知能)におけるディープラーニングの分野を陰で支えてきたのは紛れもなく「NVIDIA社」であったといえる。そんな「NVIDIA社」に、ここへきて強力なライバルが次々と登場している。
 半導体メーカーきっての巨大企業「Intel」は、ディープラーニングでは学習精度の向上と引き換えに膨大な量の計算を行うため、計算時間を短くする手段として一般的に GPU を使用して処理しているが、インテルのソフトウェア開発製品を使用することでプロセッサーだけでも十分なスピードで計算することができると言う。
 また、IT界の巨人「GAFA」の一角であるあの「Google」も、AI(人工知能)によるディープラーニングを念頭に半導体から開発を進めようとしている。
 この「Google」では、同社の提供するさまざまなクラウドサービスにディープラーニングの採用を始めた。そのために必要な技術として、独自に「テンソル計算処理に最適化された演算処理装置Tensor Processing Unit(TPU)」を開発した。この「Cloud TPU」には、Google 独自で開発した特定用途向け集積回路ASICが、機械学習ワークロードの高速化に貢献している。
 (AIに学習させると、推論よりも高い演算負荷が掛かる。Googleは「クラウドでの機械学習を強力にする」ことを目的として、毎年のように、機械学習用プロセッサを発表していた。 
 2018年、前年比8倍の高速性を持つAIチップを開発した。そのGoogleのチップは、AIをチップ化して高速化しようという考えで「特定用途向け集積回路Application Specific Integrated Circuit【ASIC】」を完成した。
 基本的には沢山の数値を集めて「1つの情報」として表現するのがテンソルであるが、テンソルが、ただの数値の集まりと違うのは「数値の種類【次元/軸の数】がいくつあるか」、「1種類あたり何項目あるか」などの基本情報を付け加えるだけで、膨大な数値の集まりをきれいに整理できてしまう点にある。)


 機械学習により、ネットワーク セキュリティから医療診断に至るまで、ビジネスや研究開発に飛躍的な進歩をもたらした。
 Google は、誰もが同じような成果を上げることができるようCloud TPUを開発し、翻訳・フォト・検索・アシスタント・Gmail など、 Google サービスが支えるカスタム設計Custom Designになっている。
 Cloud TPU は Google Cloud の AI サービスを利用して、最先端の機械学習モデルを実用化するように設計されている。そのためには、頻繁に効率的に更新する必要があり、アプリの構築・デプロイdeploy・調整などの伴い機械学習モデルを繰り返しトレーニングする必要がある。
 しかし、Cloud TPUのパフォーマンスは堅牢で、しかも低コストであり、ソリューションsolution(IT業界では、顧客の抱える問題・課題を解決し、要望・要求を満たすことができる製品やサービス、あるいはそれらの組み合わせのことを言う)や迅速かつ頻繁なイテレーションIteration(「設計」「開発」「テスト」「改善」などの工程を短いスパンで複数回実行し、これを繰り返す工程)による機械学習効果が期待できると言う。
 デプロイとは、IT分野では開発したソフトウェアを、実際の運用環境に合わせて配置し展開して実用化に供することを指す場合が多い。Google Cloud による 「ディープラーニング」の場合、ソフトウェアを構成するプログラムなどをパッケージなどにまとめて提供し、その後の使用環境に合わせて導入可能な状態に組み立てる工程や、実用過程に応じて展開していく工程や、更には、プログラムの起動後でも、所定の設定や手続きや操作を通して生じる、新たな要望や改善を受け入れる工程なども含んでいるようだ。
 しかも、ディープラーニングの「学習」で分類や識別したデータから出力される「推論モデル」に当てはめて、その結果を導くプロセスでも使われるなど、処理能力はCPUやGPUよりはるかに高いと言う。
 Google翻訳などのサービスで使われているほか、あの人間のチャンピオンに勝利した囲碁AI「AlphaGo」にも使われているようだ。
 このように、半導体の業界の動きが半導体を進化させている。昨今のAIブームの裏には、飛躍的に成長を遂げる半導体の技術の向上と密接な関係がある。将来、AIが人間の頭脳により近づいていくためには、半導体の処理能力向上が不可欠であれば、「NVIDIA社」「Intel」「Google」の3社をはじめ多くの企業が、今、AIを中核とするディープラーニングを目的とした、半導体プロセッサの処理能力向上にしのぎを削っている。
 この熾烈な競争が、より高い性能の半導体プロセッサを生み出し、AIによる高度な学習能力の向上を保障する。その相乗効果の先に、「AIが人間の脳を追い越す日」が待っている。

 脳全体には、1000億個のニューロン(神経細胞)があると言われている。ヒトが考えたりして脳を使っているとき、このニューロンネットワークが太くなったり、新しくできたり、機能を高めたりする。その結果、生じたディープラーニングこそが、その「創出」の正体である。

 目次へ