背景
私と専門が異なる人と会話をするとき、機械という言葉がうまく伝わらないことがありました。
- 製造業の人に機械学習の研究を紹介したら「ロボットの研究をされているんですね」と言われた(仕事柄「機械=動力を持った装置」だと思い込んでいる)
- 飲み会で文系の友人に「研究室のマシンが壊れちゃったんだよね」という話をしたら「パソコンのことマシンってwww」と大爆笑された(普通の人はコンピュータのことをマシンと呼ぶことに違和感を覚える)
機械ではありませんが、製造業のお客さんに「機械学習を使って不良品判定をする分類 "器" を作れば、検査工程を省力化できるかもしれませんよ」という提案をしたら「製造ラインに組み込む "装置" の開発までやってくれるんですね!」と認識されてしまい、慌てて修正したという話もあります。機械という言葉の指すものが人によって違うということを認識しておかないと危ないなー、と思いました。
一方で、情報処理の分野において「機械」は便利ワードで、いろいろなものを機械と呼びます。便利に使いすぎて自分でもどう使い分けているのか分からなくなってしまったので、改めて整理してみました。
機械という言葉が指すもの
機械という言葉を使う人に応じて、3段階に分けられそうです。
対象者 | 機械が指すもの | 機械が指す用語 |
---|---|---|
一般人 | 動力を持った装置 | machine |
ITに強い人 | コンピュータ | (computing) machine |
ITの専門家 | コンピュータの抽象的なモデル | (abstract (computing)) machine |
普通の人がイメージする機械
普通の人にとって、機械は「ウィンウィン動く大掛かりな装置」というイメージではないでしょうか。少なくとも、パソコンやスマホを見て「機械だ」と思う人は少ないと思います。
フィンテックとかインダストリー4.0とかマテリアルズ・インフォマティクスとか「IT 業界じゃないけど、とりあえず AI 使ってイノベーション起こすぜ」的な流れで非 IT 企業のシステム部門じゃない人たちと機械学習の会話をする機会もあると思いますが、そういった人たちが「機械」と聞いて何をイメージするか意識しておかないと認識が食い違うので注意が必要です。
ITに強い人がイメージする機械
デスクトップコンピュータのイラスト / スーパーコンピューターのイラスト
一方で、パソコンやスマホ以外のコンピュータと接する機会のある人にとっては、機械やマシンという言葉はコンピュータを指します。コンピュータの文脈であることが明らかなので、computing machine の computing を省略して話すわけです。
理系の学生が「研究室のマシンが~」などと言うのは、研究室で使っているのがパーソナルじゃないコンピュータなのでパソコンという表現が不適切だからです(コンピュータって言えばいいような……)。
ITの専門家がイメージする機械
そして、ITを専門とする学生やエンジニアにとって、機械という言葉はもはや物理的な何かを指してはおらず、コンピュータを抽象化した机上の数理モデルを指します。abstract machine(この時点で既に computing machine の computing が省略されている)の abstract を省略して話すわけです。コンピュータは「データを入力すると、何らかの計算を行い、結果を出力する装置」なので、上の図のように表せます。ITの専門家にとって、この図で表せるものは全部機械です(言いすぎかな……)。
機械学習の機械も、この図のことを指しているようです(私はそう理解しました)。機械学習という言葉は「機械が(自身の構成要素である操作を)学習する方法」という意味なのだと考えています(本当は「機械を学習する」のかもしれないし「機械的に学習する」のかもしれませんが、真意は解明できず……)。
機械学習関連の文献を読むときは、機械を「入力・出力・操作から成る数理モデル」に置き換えて読んでも意味が通じることが多いです。例えば support vector machine、初めて見たときは「このアルゴリズムの一体どこが machine なんだ……」と思いましたが、最近は「サポートベクターを用いた数理モデル」くらいのノリで名前つけたんだろうなーと思っています。