めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

「手話で考える」とは

何の話かというと

日本語ネイティブの聴者として、英語に続く、新たな第二言語として、「日本手話」を学び始めて2年ほど経ちました。今の習得レベルは、CEFR にマッピングすると、多分、Bレベルで、こちらのたどたどしい表現につき合ってくれる(こちらに合わせて表現を調整してくれる)相手であれば、それなりに複雑な内容の会話もできる感じです。(ほんとは韓国語も勉強中なんですが、そっちはまだAレベルなので、その話はまた後日。。。)

で、手話を勉強されている方は、日本にもたくさんいらっしゃると思うのですが、世間の情報を見ていると、英語などの第二言語を学んだ上で、次の第二言語(語弊を恐れずにいうと、新しい「外国語」)として日本手話を学ぶという観点での話があんまり出てこないので、ちょっと自分の経験を書き残しておこうかと思った次第です。

※ 英語の勉強については、こちらの資料にまとめてあります。

日本手話と日本語対応手話

話の前提として、この説明がどうしても必要なので、要点だけ簡単に。。。。日本で用いられる手話には、大きくわけて「日本手話(JSL)」と「日本語対応手話」があります。日本手話は、ろう者の間で自然に生まれた「自然言語」としての手話です。日本のろう者の中で生まれたものなので、当然ながら、海外に住んでいるろう者が使う手話とは異なります。さらにいうと、日本語とも異なる、独立した一つの言語です。

日本語対応手話は、日本語を知っている人が、日本語の文章に合わせて、単語レベルで、対応する手話表現を示すものです。文末の「です」など、もともと日本手話に存在しない単語は、後付けで、対応する表現を決めたりしているようです。

ちなみに私の場合は、もともと言語学とか言語哲学に興味もあって、「自然言語」としての手話にとても興味を惹かれて、頭の中から日本語を排除して、純粋に日本手話で思考するという体験をしたくて、日本手話のレッスンに参加を始めました。(というのが、冒頭の Tweet にも繋がっていたりもします。)

ナチュラルアプローチのレッスン

手話のレッスンには「ナチュラルアプローチ」と呼ばれる手法があり、日本手話ネイティブのろう者の講師から、日本語を一切使わずに、日本手話だけで教えてもらうことができます。日本語なしでどうやって教えるのか不思議に思うかもしれませんが、これがホントに魔法のように伝わるんですよ。(このあたりは、講師ごとの教え方のテクニックがあると思うので、まずは、ぜひナチュラルアプローチのレッスンに参加してください。)

私の場合は、前述のような興味があったので、レッスンに参加する時は、頭を空っぽにして(日本語で考えないようにして)もう幼稚園児の気分で、講師の真似をして手を動かしていたのですが、かならず、イラストや身振りを用いて、「今の何の話をしているのか」という文脈が示されるので、「なるほど。こういう状況では、この表現をつかうのかーーー」と、(日本語を介さずに)状況と表現が直接に結びついていくので、日本手話らしい(ネイティブっぽい)表現方法が理解できて楽しいです。

あと、ナチュラルアプローチのいいところは、「話が伝わらない時にどう対応すればよいか」が訓練できることかなぁと。日本語もOKの環境だと、ついつい日本語で聞いたりしちゃうと思いますが、ナチュラルアプローチのクラスでは、筆談も含めて日本語は一切使いません。なので、「その表現の意味がよくわかりませーん」と質問すると、講師は、ヒントとなる関連キーワードを示したり、さまざまな具体例をあげて(場合によっては身振りも含めて)その表現を使うべき状況を説明します。(「ドナルドトランプ」の単語がわからなければ、「アメリカ」「大統領」「ホワイトハウス」などのキーワードを示すとか、「しまい込む」の単語がわからなければ、ヘソクリをタンスの奥にしまい込む様子を手話と身振りで示すとか。)こういうのって、逆に自分が「あ、やばい、今の表現、なんか伝わってない?」と思った時に、とっさに言い換えをするヒントというか、いい練習になる気がしています。

そういえば余談ですが、/考える/方法/という表現の意味がわからなかった時に、その講師は、コップに少しだけ水を入れて、「これを見て、少なすぎると思うか、まだ残っていると思うか」と(日本手話で)説明しました。いや、わかる方にはわかると思いますが、ものすごい「おぉぉぉぉぉ。なるほどー」な体験でした。つまり、日本語で対応する単語(あえて答えは言いません)を示すのは一瞬ですが、実際にそれが何を示しているかという抽象概念をものすごく具体的に噛み砕いて説明しているわけです。たぶんこれ、日本語の単語を聞いてしまったら、それだけ覚えてわかった気になってしまい、実際に、/考える/方法/という表現を使う適切なシーンにまで思考が至らなかったと思うのですよ。言葉を理解するというのは、まさにこういうことなんだなぁと実感した経験でした。

コードスイッチングの体験

で、ぶっちゃけ、当初の目標の「日本手話だけで思考する」ができるようになったかというと、まだ単語レベルでは、日本語の単語がまず頭に浮かぶこともあって、完全に日本語を排除するのは難しいかなぁという所です。なのですが、日本語で考えている時と手話で考えている時で、頭のモードが切り替わる感覚はわかるようになってきました。(いわゆるコードスイッチングというやつですね。)

これは、日本語と英語のバイリンガルの方(もしくは、どちらかを第二言語としてかなり身につけている方)ならわかると思うのですが、日本語モードの時に、突然、英語で話そうとすると、「うっ」とつまって、ちょっとまって、今、頭を英語に切り替えるから・・・となるやつですね。

で、これに関連して(自分の中での)「あるある」なのですが、たとえば、英語モードの頭で英語で会話していると、突際に、ごく普通の日本語の単語が思い出せなくなることがあります。これは、自分の頭の中に、日本語の回路と英語の回路が独立して出来上がっていて、日本語の単語は日本語回路の方にストアされているので、英語モードの時は、そっちにアクセスできなくなるんだと理解しています。(英語での会話中に、「こんな感じの日本のことわざあるー?」という質問がかなりの強敵で、一回、頭を日本語モードにもどさないと、ぜったいに、ことわざなんて思い出せませんwww)

実は、最近、ついに、この現象が手話での会話中に発生するようになりました。これって、頭の中に手話モードの回路ができてきた証拠なので、個人的には、「いぇーい」な感じです。

とはいえ、日本語→日本手話のコードスイッチングには、まだちょっとウォーミングアップが必要で、手話のレッスンの前は、必ず30分ほど日本手話の動画を見て、頭を切り替えるようにしています。(という意味だと、レッスン中に日本語の会話がまじる環境は、実は、逆に頭が混乱するので、苦手だったりします。)

というわけで、まずはここまで。。。。ご質問などは、コメント、もしくは、Twitter でどうぞ。

Reinforcement Learning 2nd Edition: Exercise Solutions (Chapter 2 - Chapter 5)

Reinforcement Learning: An Introduction (Adaptive Computation and Machine Learning series)

Reinforcement Learning: An Introduction (Adaptive Computation and Machine Learning series)

Chapter 2



Sample code for the multi-armed bandits

github.com

Chapter 3





Chapter 4



Sample code for the Jack's car rental problem

github.com

Exercise 4.8

Since p<0.5, if you keep playing with a constant bet, you will eventually lose in average. So, at some points, you need to bet enough to win at once. In this particular case, the player decided to bet 50 when he/she has 50, and to bet 25 when he/she has 75 (hoping to win with this bet). Similarly, the player decided to bet 25 when he/she has 25 to reach 50 (hoping to win at the next bet).

Exercise 4.9

github.com

Exercise 4.10

\displaystyle q_{k+1}(s,a) = \sum_{s',r}p(s',r\mid s,a)\left\{r+\gamma \max_{a'}q_{k}(s',a')\right\}

Chapter 5

github.com

Exercise 5.12

github.com

Google Colaboratory を用いた演習環境の準備手順(TensorFlowによるニューラルネットワーク入門編)

はじめに、Google アカウント(Gmail アカウントと同じもの)を取得しておいてください。

Google Colaboratory にアクセスして、Python 3 の新規ノートブックを開きます。

コード用のセルで次のコマンドを実行して、Google Driveをノートブックの実行環境にマウントします。

from google.colab import drive
drive.mount('/content/gdrive')

次のように、ユーザー認証のリンクが表示された場合は、リンクをクリックして認証を行います。認証コードが表示されるので、それをコピー&ペーストで入力してください。

コード用のセルで次のコマンドを実行すると、ノートブックが Google Drive にダウンロードされます。

%%bash
cd '/content/gdrive/My Drive/Colab Notebooks'
git clone https://github.com/enakai00/colab_tfbook.git

Google Drive の下図の場所にフォルダーができていることを確認します。(見つからない場合は、ブラウザーの画面をリフレッシュしてください。)

ノートブックを開く際は、右クリックのメニューから「アプリで開く」⇒「Colaboratory」を選びます。

ここでは、動作確認用に「Chapter01/1. Least squares method with low-level API.ipynb」を開きます。

メニューから「編集」⇒「出力をすべて消去」を選択すると、既存の実行結果が消去されます。

メニューから「ランタイム」⇒「すべてのセルを実行」を選択すると、すべてのセルが上から順に自動実行されます。

すべてのセルが正しく実行されることを確認しておいてください。たとえば、最後のセルでは、次のようなグラフが表示されます。