テクノベート、および、非エンジニアでも知っていきたい基礎知識についてのまとめ(メモ)。
自分用で作成したメモみたいなものなのでご参考までに。
テクノベートとは
テクノベートとは、テクノロジーとイノベーションを合わせた造語。
テクノベート時代では、ビジネスの構造・やり方の前提が、処理能力の高いコンピュータを前提としたものに変化する。
テクノベートへの理解と応用力が、今後のビジネスの成功へのカギとなり、それを理解したうえでビジネス・経営の意思決定をすると良い。
そのためには、以下を学んでおくと良い。
- アルゴリズムとは何か
- プログラミングの基礎
- 統計学の基礎
- データの扱い方
- 新しい技術との付き合い方
これらを学んでおくことで専門技術者との会議・協業の成果を高めることができる。
アルゴリズムとプログラミング言語
アルゴリズムとは
アルゴリズムとは、コンピュータを利用して、与えられた課題を解決するための処理手順のこと。
例えば、自動洗濯機の自動で洗うアルゴリズムは「洗う→すすぐ→脱水する」という処理手順であり、その処理手順を機械がわかる言葉で示して洗濯機を動かしている。
アルゴリズムは思考プロセスそのものを意味する。
プログラミング言語とは
プログラミング言語とは、アルゴリズムを記す言葉であり、機械がわかる言葉にしたもの。
プログラム言語は200種類ほどある。画像処理に適したものや演算処理に適したものなど用途の応じて使い分けられている。
プログラム言語は用途によって種類の使い分け必要だが、アルゴリズムは言語が変わっても活かすことができるので、アルゴリズムを学ぶことの方が重要。
良いアルゴリズムは、もっとも計算量が少なくなるものである。計算量はコンピュータが行う演算・比較・入れ替えなどの操作回数に左右される。なので、大量のデータを扱う場合はアルゴリズムの良し悪しがビジネススピードにも影響する。
プログラミングの基礎
プログラミングを正しく理解するためには、コンピュータの基本構造、プログラムとプログラミング言語とコンピュータの関係について知っておく必要がある。
コンピュータの基本構造
コンピュータを構成する主な装置は以下の5つ
- 入力装置
キーボード、スキャナ、マイク - 制御装置
各装置を制御する(入力・演算・出力の命令を出す) - 演算装置
主記憶装置と連携して演算をする - 主記憶装置
メモリ、ハードディスク - 出力装置
ディスプレイ、プリンター
また、制御装置と演算装置を合わせたものを中央演算処理装置(CPU)と呼ぶ。
プログラムとプログラミング言語とコンピュータの関係
人間がコンピュータへ指示を出すために記した記述がプログラムであり、プログラミング言語と呼ばれる人間が理解できる言葉や記号で書かれている。
しかし、コンピュータはプログラミング言語を直接理解できない。
コンピュータが理解できるのは1と0(機械語)のみ。
なので人間はコンパイラやインタプリタなどの変換プログラムを使って機械語(1と0の羅列)に翻訳してコンピュータを動かしている。
そしてコンピュータは、CPUの中にある数億個のスイッチで、電流が流れると1、流れなければ0、というふうに制御信号をやりとりして動いている。
プログラミングのコツ
プログラムは、プログラミング言語で書かれたコンピュータへの指示書。
したがって、コンピュータを期待通りに動かすためには、その指示内容は100%完璧に指示する必要がある。
以下3点に気を付けてプログラミングすると良い
- Definition:定義付け
プログラムが動く前提条件を正しく定義すること(初期設定) - Correctness:正当性
計算結果や処理の順番が正しいこと - Case Coverage:網羅性
起こり得る状態の場合分けをすべて網羅すること
プログラムの構造と制御
プログラムの主な構成要素
- 配列
プログラムが扱う大量のデータを効率よく正確に読み込むための器。
具体的には同じ種類のデータを1グループにしたもので、プログラマーがわかりやすい名前を宣言するのが一般的。
個々のデータには0から始まる添え字が連番でつく。
例)X(i):配列Xの添え字iの位置にある値 - 変数
プログラム動作の途中で一時的に記憶する入れ物
一度に一つの値が記憶される
例)A=1:変数Aに1を代入 - 関数
一連の処理を独立した機能として定義したもの。
モジュールも同様の概念の言葉として使われる。
配列、変数、関数を宣言してデータの扱いやプログラムの見やすさを工夫する。
プログラムを制御する3つの基本構造
どのようなプログラムもこの3つの構造で表現できる。(フローチャート上でも表現できる)
- 順次
上から下へ処理が順に実行されていく構造 - 選択(条件分岐)
指定した条件によって、2つ以上の処理から1つを選択する構造 - 反復(ループ)
ある条件が満たされている間、同じ処理が繰り返される構造
コンピュータが扱う統計学の基礎
- 数字に集約する
代表値:平均値、中央値、最頻値
散らばり:分散、標準偏差、正規分布 - 数式に集約する
散布図、相関係数、回帰分析、重回帰分析
データ構造
データはメモリやハードディスクに記憶される。
コンピュータには1データが1つの箱に入っているイメージ。
コンピュータが1回で理解できるのは、1つの箱に入っている1つのデータのみ。人間は1回で複数理解できるが大量には理解できない。大容量になればなるほどコンピュータの方が有利になる。
代表的なデータ構造の種類と特徴
- 配列
連続した箱が順番に1列に並んでいる
アクセスは早い、追加削除は遅い - リスト
箱が並んでいるが順番はバラバラ、次の箱へのリンクを貼り順番がわかるようにしてある
アクセスは遅い、追加削除は早い - ツリー
階層構造・ツリー構造
検索は非常に速いが、複雑 - グラフ
リンクが複雑に絡み合う、マインドマップみたいな感じ
検索は遅いが、複雑なデータを表現できる
新技術
AI
AI・・・Artificial Intelligence(人工知能)
その定義は現代でも明確には決まっていない。
現在のメディアがAIという言葉を使うときは、機械学習を指していることが多い。
機械学習・・・データからパターンを推測する分析手法
ディープラーニング・・・機械学習のアルゴリズムの一つ
人間の脳のシナプスのつながりをコンピュータに活用したもの、情報を与えると人間の脳のように勝手に学習を始めていく。従来のアルゴリズムは与えた情報に対して着目してほしいことを人間が指示必要だったが、ディープラーニングはこの着目点自体も自分で判断して学習していく。
AIが得意なこと
- 識別
パターンを認識する(レントゲンでがんを発見) - 予測
新たなデータに対する予測をする(レコメンデーション、商品の売れ筋予測) - 発見
データの構造を見つける(顧客のクラスター分析)
AIが不得意なこと
- 過去のデータがない場合の予測
- データの収集方法や目的の設定
- なぜそうなるのか説明すること
ビッグデータ
ビッグデータの定義として有名なもの(米国ガードナー社の定義)
- Volume:量が巨大
- Velocity:更新が頻繁
- Variety:データの種類が多様
コンピュータの処理能力向上、アルゴリズム進化・精度向上により、ビッグデータ(大量のデータ)扱うことで分析の質も飛躍的に向上した。
ショッピングサイトのレコメンドも大量の顧客データを保有・分析できるため精度が良くなる
IOT
IOT・・・Internet of Things モノのインターネット
IOTのビジネスへの活用は、業務改善、アフターサービス、付加価値向上が代表的。
IOT化することでビッグデータ収集もできる
IOT、ビッグデータ、機械学習は密接に関係している。
非エンジニアでIT知識がなくても必要なこと
基本的なテクノロジーの知識を継続して得ること
新技術がどのステージにいるのかを判断できること
自分たちが勝てるところはどこかを冷静に考える力