連載
» 2019年02月08日 05時00分 公開

機械学習&ディープラーニング入門(データ構造編):Lesson 4 「AIのデータ構造となるNumPyの多次元配列と、数値計算」の基礎まとめ

機械学習やディープラーニングではデータは表現できるのか? Python言語の多次元リストや、ライブラリ「NumPy」の多次元配列(ndarray)といったデータ構造とその数値計算に関する基礎の基礎を箇条書きでまとめる。

[一色政彦,デジタルアドバンテージ]
「機械学習&ディープラーニング入門(データ構造編)」のインデックス

連載目次

ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

 前回はAIのデータ構造「多次元配列」を使った計算方法について説明した。今回は、まとめとして、これまでの3回分のLessonのポイントを、箇条書きで短く書いているので、再確認に活用してほしい。

まとめ:AIデータ構造の基礎

  • 単一のデータ: Pythonなら、数値型(整数値/浮動小数点数値)の値
  • 複数(1次元)のデータ: Pythonなら、リスト型の値
  • 複数(2次元)のデータ: Pythonなら、2次元のリスト値。いわゆる表データ(=表計算データ)。データベースのテーブルと親和性が高い
  • 複数(多次元)のデータ: Pythonなら、多次元のリスト値。[ [ [ 165.5, 58.4 ], [ 177.2, 67.8 ], [ 183.2, 83.7 ] ] ] のように[]を入れ子にして記述する
  • NumPy: 数値計算ライブラリ。多次元配列という構造でデータをまとめて、しかも高速に計算できる。数学に強く、機械学習でPythonが人気である理由の一つ
  • 多次元配列: NumPy独自のデータ型「ndarrayクラス」のオブジェクト。Python言語の多次元リストと同様の構造でデータを保持でき、簡単に多次元リストと相互に変換できる
  • numpyモジュールのインポート: import numpy as npというコードで、npと別名を付けるのが慣例
  • 多次元リスト→多次元配列への変換: ndarrayクラスのオブジェクトを作成するには、基本的にnumpyモジュール(別名:np)のarray()関数を利用する。関数の引数に多次元リスト値を指定する
  • 多次元配列→多次元リストへの変換: ndarrayクラスのオブジェクトのtolist()メソッドを呼び出すと、戻り値で多次元リスト値が得られる
  • Pandas: データ解析支援ライブラリで、ファイルやデータベースからデータを読み取って、2次元の表データを作成したり、出力したり、表計算・統計計算したりできる
  • NumPyとライブラリの関係: 多くのライブラリではNumPyの多次元配列をデータとして受け付ける。AI・ディープラーニング用ライブラリ「TensorFlow」も同じで、そのデータは、TensorFlow内部では「テンソル」(Tensor)と呼ばれる独自のデータ型に変換されて使用される
  • 数学を使う理由: 複雑で面倒くさい計算を、シンプルで効率的な短い式で表現するため
  • 多次元配列に対応する数学用語: 多次元配列はプログラミング用語なので、数式や計算では数学用語が代わりに用いられるのが一般的。単一のデータは「スカラー」、複数(1次元)のデータは「ベクトル」、複数(2次元)のデータは「行列」、複数(多次元)のデータは「テンソル」という数学用語がある。テンソルはライブラリ「TensorFlow」のデータ型と同じ名前である
  • テンソルの階: プログラミング用語の「次元」に対応する数学用語。単一のデータは「0階のテンソル」、複数(1次元)のデータは「1階」、複数(2次元)のデータは「2階」、複数(多次元)のデータは「3階……N階」となる
  • NumPyの数学計算機能: 例えばadd()などの四則演算、round()などの丸め処理、sin()などの三角関数、sqrt()などの数学概念、piなどの数学定数、average()などの統計処理など、多種多様な数学計算の関数が提供されている
  • 多次元配列の基本情報: 多次元配列オブジェクトの形状はshape、次元数はndim、要素数はsizeで出力できる
  • NumPyを使った計算: 数学の行列の転置はT、積は@を使って計算できる。これらの数学の意味は、とりあえず理解する必要はない(行列計算できる例として出しただけなので)
  • NumPyの軸: 英語でaxes(複数形。単数形はaxis)。この「軸」という概念に基づいて、表データの行方向や列方向にデータを計算したりできる
「機械学習&ディープラーニング入門(データ構造編)」のインデックス

機械学習&ディープラーニング入門(データ構造編)

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。