ニューラルネット翻訳が実用化される時代にできる事を考える

日本国内の機械学習クラスタ※では昨日から大きく話題になっていますが、Google翻訳における日本語・英語翻訳にニューラルネットワークが導入されたようです。

ニューラルネットワークを用いた機械翻訳自体が新しい (私の記憶違いでなければ初出は2014年) ので実装と実運用だけでも十分に話題性がありますが、そうした研究者、開発者の視点を排すると、翻訳先言語の出力文が従来の翻訳方式と比較して格段に流暢になっている事が注目の理由です。




ニューラルネット翻訳以前の (統計的) 機械翻訳は、翻訳元言語の1センテンスを単語または単語列の要素に分解してから翻訳先言語の単語 (列) に個別に変換する処理を行うものです。

従って部分的には正しい訳文を出力する事があっても、センテンス全体としては不自然な訳文が得られる事が少なくないのは皆さんのよく知られるところです。

今回、新しく導入されたニューラルネット翻訳は、翻訳元言語の文を入力として翻訳先言語で新しく出力文を生成するので、1センテンス単位で見た際に翻訳先言語の文として破綻が少ない事が特徴です。

その出力結果を見て、機械翻訳は数年以内に完成すると言った意見や翻訳者が不要になると言った趣旨の発言が散見された事が、今回の記事を書く事に至った直接的な動機となっています。

結論から述べると、今後の数年のうちに機械翻訳が完成する事はありませんし、翻訳者が不要になる事もありません。いくらニューラルネット翻訳の訳出が優れているとは言え、その原理上、既に過去に翻訳されて対訳文が整備された分野と言語対の組み合わせでなければ正確な翻訳は期待できませんし、現在の機械翻訳で新しい訳語を一から作り出す事はできません。

また (再現性とのトレードオフになるので微妙なところですが) 原文のニュアンスを伝えるための訳者のセンスは (その原著者と訳者の専用対訳コーパスなどを整備でもしない限り) 反映されませんので、訳文も常に画一的になります。

そして一般的には余り認知されていない事なのですが、機械翻訳に用いられる対訳文という特殊な翻訳文は量自体が限られている上に、分野と言語対の組み合わせに著しい偏りがあります。

機械翻訳は対訳文という過去の翻訳例を参照して再現するものですので、英語・フランス語間の法律文の翻訳など十分な対訳文が得られる分野と言語対では威力を発揮する事が期待されますが、日本語・ヘブライ語間での日常会話の翻訳には余り期待はできません。



機械翻訳と翻訳者の関係はここで終わりにしますが、この2者の関係は自動化が進む他の分野に於いても人ができる事を示唆する事例になると私自身は考えています。

自動運転でも光学文字認識 (OCR) でも音声認識でも新規性と同時に有用性を謳う以上、潜在的に既存の仕事を置き換える可能性を意識せざるを得ない場面はある訳ですが、一方で全ての運転手や議事録作成者が不要になる事は現実的ではないと思われます。

恒常的に反復されマニュアル化され得る部分については自動化が進む事が予想されますし、積極的に推し進めるべきでさえありますが、ルーチンでは処理できない判断や推測が必要となる部分ではどうしても専門家の知見が必要となります。


※ 人工知能という単語はアレルギー反応の原因となるので使いません

これから Linux を始めるなら

好むと好まざるとに関わらず、これから初めて Linux に触れようとする人には『新しいLinuxの教科書』がオススメです。

この書籍の凄いところは、記載内容に無駄なところが一つもない点で、書かれている内容は Linux を使用していく上で実際に役に立つものばかりです。

本書の内容を 100% 理解していれば、今後の Linux を使用した研究、開発、システム運用などがスムーズに行えるようになることは容易に想像できます。


新しいLinuxの教科書

もっと早いうちから、この本に出会いたかったなというのが正直な感想です。

特に大学の学部4年、大学院の修士1年ぐらいの時に読了していれば、その後の研究生活は随分と楽になっただろうなと思えます。

私と Linux との出会いは、ちょうど2000年代の終わり、2010年代の始まり頃で、大学の研究室に入ったら、いきなり CentOS を使用することになりました。

私の研究室は学部レベルでは電気電子に所属していたので、新入生はほぼ全員が初めて Linux に触れる素人ばかりでした。

当然、研究生活に必要な知識を身につけるための勉強会が毎日のようにあったのですが、その内容がまさに本書の内容とほとんど同じだったので驚きました。

相違点があるとすれば、グリッド・コンピューティングや独自ライブラリの使い方、ドキュメントの書き方も勉強会には含まれていたことぐらいです。

それぐらい実践的で、直ぐにでも役に立つ内容ばかりです。




日本で広く使われている CentOS を対象としている点も実用的で好感が持てます。

いくら Ubuntu の方がハードウェア認識率が高くても、Gentoo の方がシンプルで使いやすくても、研究組織や企業で最も使われていることを考えると、日本語環境から自由にならない限りは CentOS との付き合いは避けては通れません。

これだけ実用的な本書ですが、 (残念ながら) もちろん一冊で必要なことが全て学べる訳ではありません。

本書中にもある Vi(m) エディタの使い方やシェルスクリプトの書き方、頻繁に使うコマンドラインツール、 バージョン管理システム (Git) の使い方などは本書の断片的な情報に留まらず、別の書籍も用いて網羅的に学んだほうが良いです。

また、そのタイトルに反してカーネルやデバイスドライバについて書かれた書籍ではないので、Linux や OS について詳しく学ぼうとする用途には適していません。

実のところ、私はハードウェアに近い低レイヤの理解を深めたくて本書を手に取ったので、その点ではあまり役に立たなかったとも言えるのですが、勘違いという一面もあるので仕方ありません。

いまやネットワークサーバだけでなく、Android 端末やドローンや組み込みシステムに普遍的に用いられている Linux への理解を深めることは無駄にはなりません。

そのための第一歩として本書は間違いのない教科書です。

ただし、Linux を実際に使うのであれば、他にも読んでおくべき本はたくさんあるので、本書だけに留まらず、実現したい目的に応じて周辺知識も同時に学んでいくことが重要です。

以下は読んでおくべき本の一例


Advanced Programming in the UNIX Environment (3rd Edition) (Addison-Wesley Professional Computing Series)


Computer Networks: Pearson New International Edition


An Introduction to Database Systems

表計算ソフトを常用する人に勧めたい『10年戦えるデータ分析入門』

10年戦えるデータ分析入門』という本を読みました。

この書籍の趣旨は、データベース操作言語 SQL を使って分析を行いビジネスに役立てようというもの。

なぜSQLを使うのか (どうして Excel や R や C++ ではいけないのか) という根本的な疑問に対して、著者は第1章の冒頭から SQL を使うことが適当である事の明確な根拠を提示します。

第2章でリレーショナルデータベースについての導入が行われ、以後のページの大半を占める第1部は日常業務で便利なデータの探索や集計の具体的な実行方法の解説に費やされます。

普段は意図して触れていませんが私もソフトウェア開発に携わる者なので、これだけであれば本書に内容的な新規性を見出す事はなかったでしょう。

本書が特徴的であるのは、検索したデータを表示する際に「limit節で表示行数を絞る (48p) 」などの具体的なアドバイスや HAVING や GROUP BY などの「select文の節の実行順序 (77p) 」など、自明であると思われている (事が多い) が故に省略されがちな項目についても丁寧に記述されている点です。

先述の SQL (リレーショナルデータベース) を使う事が適当である理由とも合わせて、データ分析よりもむしろデータベースに初めて触れる人に最初に読んでもらいたい本であると思われた事が、本書を購入した実の理由です。

本書では「正規化」と「テーブル作成」という言葉こそ登場しますが、具体的な正規形や論理設計の詳細には触れられていません。まして通読中に物理設計やパフォーマンスを意識する事は基本的にはありません。

こうした割り切った構成で、集計表の作成など日常業務で頻繁に使われるデータの参照方法に特化している点に好感が持てます。

(知らずのうちであったとしても) データベースに触れない日はないほどデータベースが普及している今日では、そこに蓄えられたデータを参照して活用できるようになる事が第一で、新規にデータベースを設計する為の技術は必要になってから学べば良いからです。

そうした意味で第1部を読み終えた後に更にテーマを深化させた内容としてお勧めしたいのが、『達人に学ぶ SQL徹底指南書』です。

CASE式を使った条件分岐から始まり、行列変換、行間比較、集合演算など、SQL だけでここまで表現 (分析) できるのかと感嘆し、長すぎる 学生生活の中で何度も読み直したものですが、データ分析のためのSQL技術書という点で本書の延長上に位置する内容となっています。




一方、SQLを用いた分析システム構築について触れた第2部については、一転して概念の導入的な記述が増えます。一つ一つのテーマについて具体的に触れていると、それだけで分厚い本が何冊も書ける容量と高度な専門性が要求される内容となってしまい本書の趣旨が曖昧になるので、導入に留めて詳細は他の書籍に譲るという割り切りなのかもしれません。

第2部の内容のみでシステム設計ができる訳ではありませんが、重要な項目は一通り押さえられています。対して本書を通して触れられていない項目には、内部スキーマ、サイジング等のパフォーマンスに関連するもの、相関等の統計的な分析手法、分析結果の可視化と評価等があります。

そうした点を加味しても、本書に対する私の印象は通読するだけの価値があったというものでした。表計算ソフトを日頃から常用しており、入力する行数が増えてくるとパソコンの反応が鈍くなって埒が明かないと思う人にとっては、SQLの利用により劇的に作業効率が上昇する事も十分に考えられる為、本書を上梓して下さった著者に賞賛を送りたい気分でさえあります。

本書の参考文献には挙げられていませんが、経営視点からのデータ分析について私は個人的に『14のフレームワークで考えるデータ分析の教科書』をお勧めします。どのようなデータを収集し、何の目的に使用するかを具体的に記述している点が特徴です。

統計学については『統計学入門』と言いたいところですが、読み手を選ぶので『完全独習 統計学入門』あたりをまず一読される事を提案いたします。

機械学習については ベイズの 定番 Pattern Recognition and Machine Learning (Information Science and Statistics) も良いのですが、昨今の日本語書籍の充実ぶりも目覚ましいものがあります。

中でも個人的にお勧めなのが『言語処理のための機械学習入門 』です。

必要な数学的知識 (最適化・確率・情報量) から始まり、深層学習の登場以前の種々の手法について丁寧に解説されています。

Contact Us