raspberry pi と ADRSIRとアレクサで家電操作 with macbook

はじめに

・この記事について

1. リビングのリモコンの増加→スマホで操作したい。

2. 売ってる奴の評価があまりよくない

3. 自分で作ろう

 

・この記事でできること

raspberry pi zero WH と ADRSIRを用いて、アレクサから家電操作をできるようになる。

 

・購入したもの

Raspberry Pi Zero WH スターターセット
BitTradeOne ラズベリーパイ専用学習リモコン基板
マウス、キーボード、USBハブ(スターターセットにはついてないので注意)


ラズパイセットアップ

1. 下記よりNOOBSをDL

Noobs

2. 下記ソフトでSDカードをフォーマット

SDメモリカードフォーマッター

3. SDカードに解凍した結果をコピー(解凍フォルダではなく、中身を全てコピー)

4. SDカード、マウス、キーボード、HDMIをラズパイに接続し、電源ON!

5. セットアップが始まるので流れに従う。終わったらwifiを接続。

(私の場合、なぜかmacでSDカードを作成すると虹色の画面から進まなかった。。
winで作るとセットアップまで進む。また、手元に二個ラズパイがあったのだが、同じ手順で片方はセットアップできたが、もう片方は電源ランプすらつかなかった。。)


アレクサ周りの設定 

1. 下記に登録
Node-RED Alexa Home Skill Bridge

2. デバイスを追加(例:tv power)

3. スマホのAlexa AppでNode-REDスキルを追加し。Node-RED Alexa Home Skill Bridgeのアカウントへログイン。(以降Alexa Appの操作)

4. 「デバイス > デバイスの追加 > その他 > デバイスを検出」で追加したデバイスを追加。

5. 「ホームの左上> 定型アクション > 右上の+」で追加画面を開く。アクション名、実行条件(実際に言う言葉)を設定し、「アクションの追加 > スマートホーム > tv power」を設定。


ラズパイの設定

1. 下記をDL&解凍
ラズパイ専用学習リモコン対応ソフトウェア

2. ラズパイのコンソールで下記を実行。

node-red-pi --max-old-space-size=256

3. アドレスをブラウザで開く。(アドレスを探して、macからアクセスしてもおk)
(コンソールの最後に出るアドレスだめだとだめだった。hostname -iで調べた。)

4. Node-RED右上のメニューから「パレットの管理 > ノードを追加 > “node-red-contrib-alexa-home-skill” > ノードを追加」 で検索。

5. DL&解凍後のnode-red-xxx.jsonを、Node-red右上のメニューから「読み込み > クリップボード」で貼り付け。

(jsonファイルに日本語があると読み込み失敗した。全部英語に直した)

5. alexa homeとリモコンノード(この番号を覚えておく)をパレットにおいて、つなげる。(一つのアクションで二個以上操作する場合は、片方にdelayを噛ませると良い)

6. alexa homeのノードをダブルクリック > アカウントログイン後、作成したデバイスを設定可能。

 


BitTradeOne ラズベリーパイ専用学習リモコン基板の設定 

1. 真ん中のスイッチを学習側にする。 

2. 対象のボタンを押して、学習したいリモコンをむけて、ボタンを押す。

3. スイッチを戻す。


確認

1. アレクサに先ほど設定したフレーズを投げかける。


参考にしたサイト

Raspberry Pi用学習リモコン基板ADRSIRとAlexaでスマートホーム

Amazon Echoから赤外線リモコン機器(テレビ、照明など)をコントロールする(ラズベリー・パイ専用 学習リモコン基板 ADRSIRを使って)

 

 

2019 AI記事10選(翻訳)

下記の日本語訳。まとめ方が良い。
https://www.topbots.com/top-ml-research-papers-2019/

 

4. ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND, BY LIYUAN LIU, HAOMING JIANG, PENGCHENG HE, WEIZHU CHEN, XIAODONG LIU, JIANFENG GAO, JIAWEI HAN

・Abst
 学習率の自動調整は便利である。ここで、そのメカニズムを追求し、その問題の仮説を立てて検証する。さらに新しい手法も提案する。

・Summary
 学習率の自動調整は、学習の初期に局所解に陥る可能性があることを示した。warmupはこの問題が無いので良い→Rectified Adam(RAdam)の提案。

・Core Idea
 RAdamはSGD momentumのようにふるまう。

・その他の記事
https://github.com/arXivTimes/arXivTimes/issues/1347

 

4. XLNET: GENERALIZED AUTOREGRESSIVE PRETRAINING FOR LANGUAGE UNDERSTANDING, BY ZHILIN YANG, ZIHANG DAI, YIMING YANG, JAIME CARBONELL, RUSLAN SALAKHUTDINOV, QUOC V. LE

・Abst
 BERTはマスクの事前学習をするが、その依存関係を無視し、fintuneとの不一致に苦しむ。これを克服すべくXLNetを提案した。XLNetでは、1)要素の順番の期待値の最大化の学習を行い、2)自己回帰の式の制限を克服した。

・Summary
 Transformer-XLとBERTを組み合わせた。

・Core Idea
 有りうる語順の期待値を最大化する。

・その他の記事
https://github.com/arXivTimes/arXivTimes/issues/1289
 

 

6. ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS

・Abst
BERTなどは重いため、二つのパラメータ削減テクニックを導入した。また、文章の一貫性に着目した自己教師あり学習も利用する。

・Summary
A Lite BERT (ALBERT)。factorized embedding parameterization、cross-layer parameter sharing、sentence-order predictionを導入した。

・Core Idea
有りうる語順の期待値を最大化する。
factorized embedding parameterization:隠れ層の巨大な単語梅恋を二つの小さな行列に分解する。
cross-layer parameter sharing:すべてのacross layer(隣のレイヤ)においてパラメータを共有する?
sentence-order prediction:正解のデータセットはそのままに、不正解のデータセットは、正解例の順序を逆にしたものを使用します

・その他の記事
https://github.com/yoheikikuta/paper-reading/issues/38
https://qiita.com/IwasakiYuuki/items/01333a4e4766f5ebcd28 

 

7. TRANSFERABLE MULTI-DOMAIN STATE GENERATOR FOR TASK-ORIENTED DIALOGUE SYSTEMS

・Abst
 ドメインオントロジーの依存とドメイン間知識共有の欠如は大きな問題だ。既存手法は、推論時に未知のスロット値にはまったり、新しいドメインに移すときに問題になる。提案するTRADE(Transferable Dialogue State Generator)は、コピーメカニズムを利用して対話状態を発話からから生成する。またこれにより、学習時に遭遇しないトリプレット(domain, slot,value)を推定するとき、知識の転送をを促進する。モデルは、発話エンコーダ、スロットゲート、ステイトジェネレータからなり、これらはドメイン間で共有される。

・Summary
 ドメインオントロジへの依存多寡とドメイン間の知識共有に対応。実際のシナリオでは、たくさんのスロットは異なるドメインで値を共有している(場所スロットではレストラン、ホテル、タクシーなど色々なドメインで存在する)。筆者はTRADEを提案。これは、文脈で強調されるスロットゲートとコピーメカニズムを利用し、スロットの値を対話履歴のどこでも追跡する。TRADEはドメイン間でパラメータを共有し、過去の未知のスロットの値追跡すること可能にする事前に定義されたオントロジーを必要としない。

・Core Idea
- ドメインへの依存多寡とドメイン間の知識共有のために
 - それぞれの事前定義されたオントロジーの用語の確率を推定する代わりに、直接スロットの値を生成する
 - ドメイン間でパラメータを共有する
- TRADEの構成コンポーネント
 - 発話エンコーダは対話の発話を固定長ベクトルにエンコードする
 - スロットゲートは対話により特定のペア(domain, slot)がトリガーされるか予測する
 - ステージジェネレータは、全てのペアを独自に一致するために、複数の出力トークンをデコードする。

・その他の記事
https://github.com/arXivTimes/arXivTimes/issues/1330
https://medium.com/engineering-dialogue-system/%E8%AB%96%E6%96%87%E8%A6%81%E7%B4%84-acl-2019-transferable-multi-domain-state-generator-for-task-oriented-4e0ab566eea4 

 

8. A THEORY OF FERMAT PATHS FOR NON-LINE-OF-SIGHT SHAPE RECONSTRUCTION

・Abst
 我々は、可視シーンとtransientカメラのパスにない未知物体の間の光のフェルマーパスの最新の理論を紹介します。これらのライトパスは、スペクトル反射に従うか物体境界で反射され、隠れた物体の形状をエンコードします。
...

 

9. SOCIAL INFLUENCE AS INTRINSIC MOTIVATION FOR MULTI-AGENT DEEP REINFORCEMENT LEARNING,

 ・Abst
 我々は、マルチエージェント強化学習で調整とコミュニケーションを達成する統一されたメカニズム提案する。報酬を受けたエージェントを通して、他のエージェントにも影響を及ぼしていく。この因果関係はcounterfactual reasoningにより評価される。それぞれのタイムステップで、エージェントは取りうる行動をシミュレーションして、他のエージェントに与える影響を調べる。他のエージェントに与える影響が大きいほど、高い報酬が与えられる。これは行動間の高い相互情報を持つことと同一だ。

・Symmary
 この論文では、MARLの内的社会的モチベーションの誘発を考える。このアプローチでは、他のエージェントに影響を与える行動が高い報酬を得る。これによりエージェント間の相互情報交換が促進される。

 

10. LEARNING EXISTING SOCIAL CONVENTIONS VIA OBSERVATIONALLY AUGMENTED SELF-PLAY

・Abst
 AIエージェントが効果的に人間に寄与するには、存在する習慣に沿った行動を取る必要がある(渋滞ではどうナビゲーションするか、どの言語を話すのか、チームメイトとどう調整するのか)。エージェントの学習ポリシーに、既存グループに参加した際の考慮を考える。MARLでは学習中は高成績でも、実際のグループに入ると失敗することもある。小数のサンプルからグループの慣習を見つける方法を提案する。

・Core Idea
 observationally augmented self-play(OSP)を提案。目的と一緒に、社会的行動の少数のペア(状態、アクション)を与えて、学習させる。

 

単語
Pursuing:追及する
rectifies:修正する
tractable:扱いやすい
neglects:無視する
discrepancy:不一致
pros and cons:長所と短所
factorization:因数分解
coherence:一貫性
ontology:知識をあるドメイン内の概念と概念間の関係のセットとみなしたときの形式的表現
slot:小さい穴
utterances:発言
facilitating:促進する
imperative:命令的
dialogue:対話
utterance:発話
Fermat:フェルマー
transient:瞬間的な
unified :統一された
coordination:調整
Causal :因果
counterfactual:反事実的条件文 
alternate:代わりとなる
conventions:習慣

機械学習における公平性②

公平性を保証した...

福地先生、筑波大学AI/機械学習

https://www.slideshare.net/kazutofukuchi/ai-197738033

 

近年注目が集まる

ICML,NIPS,KDD

 

採用不採用の結果で予測分布が一致してほしい

calibration:出力するラベルのみによって、ラベルの予測結果が決まってほしい??

individual fairness:似た人は似た結果にしてください。

特徴ベクトルに距離を定義する?

 

・ML

分類誤差最小+公平基準を満たす

 

in-processを考える

不公平さの罰則の項を一緒に最小化する

→凸でなくなって、最適化が難しくなる

 

・Reduction Approach

分類機上の分布を出力するものを学習する

最適化の空間が滑らかになって、学習がやりやすくなる

ラグランジュを使って、minmax問題にする(交互に最適化)

→鞍点の搜索はアルゴがたくさんある

 

・コストセンシティブ学習

疾患を見逃すのはまずい

positiveとnegativeを予測するときで、cを変える

 

・fair regression

連続変数を離散化して、分類問題にしてやる

 

・表現学習

公平な表現学習、ベクトルをsensitiveな情報に依存しないようにしたい

この後の分類機も公平になるのか??

 

・Invariant feature

特定の要素に依存しないような、学習をしたい

GANを使おう:、Demographic Parity、discriminatorでsensitive属性がわからなくなればおk

男女の識別にすると、中性的な顔とか作れそうだな。。

 

・VAE+information bottle nec

GANだと遅いけど、VAEで効率的な学習をできる

-------

公平性の学習理論

 

汎化性能、testデータの分類性能を評価しましょう

汎化誤差=test data error - train data error

汎化公平性=test data 不公平性 - train data 不公平性

 

・Learning Non-Dictiminatory Predictors

- ROCが一致するように調整?

- データを半分に割って、公平性の項を課した学習を行い、もう片方でpost処理で公平性を満たす

 

・Training Well...

汎化誤差はモデルの複雑さに依存するが、公平性は制約の数にしか依存しない

 

・バンディット問題

オンライン推薦など、累積報酬の最大化

能力主義的公平性、能力の高さ以外で優先的に選んではいけない

信頼区間が一番平均が高い人に連なる集団から一様にとる

regretも解析されてる

 

強化学習

 

・Delayed Effect

学習とテストに時間の隔たりがある

貧困層の学生を取らないと、貧困が広がる

 

・Human in the Loop

出力の結果に人間が入る

人の考えが影響する、学習は一回では終わらない

 

・公平性を装う技術

不公平なものを世間的に公平に見せることができるか?

不公平なモデルから公平なラベルづけデータセットを生成できる

機械学習における公平性①

産総研人工知能セミナー

 

○ 機械学習における公平性の概要

神嶌先生(産総研

PRMLの翻訳もされた方?

http://www.kamishima.net/fadm/

 

データマイニングの技術

重大な決定に利用される:採用とか借金とか。。

公平性の担保が必要

・社会的な公平性

2010くらいから機械学習の公平性は始まった

最初は少なかったが、2014のワークショップで少し大きくなった

2016-2017ですごく伸びた:EUGDPRトランプ大統領の話

数学的に公平性を定義するには?

 

・どういう原因で不公正はデータマイニングで起きるのか?

- データバイアス:

ラベルに偏りがある場合(人手ではどうしても乗る、差別意識

ラベルがダメな時、特徴がダメな時がある

特徴、自然言語処理の新聞とかそのまま人の偏りが乗る

#ターゲット広告

検索に関連した広告、名前検索時の結果?

国による名前でよくない候補がでる(逮捕歴とか逆なことも)

→偉い先生が調べたけど、別に作為的なものはなかった

みんなが悪意に満ちた行動を取っていたから、それがデータに乗った

 

- サンプリングバイアス:

データのサンプリングに偏りある場合

借金だと申し込んだ人のデータしかない

# 標本選択バイアス

貸した人に対して、逃げたかどうか?

貸した人のデータしか得られない。。。

→データの偏りの発生

 

- 帰納バイアス

仮定で学習、この仮定のせいでバイアス

汎化→少数派の意見を殺しがち

# 帰納バイアス

MLは仮定を置かないと、汎化できない(予測とかに使えない)

これがないと、事実の列挙になる

仮定が事実と合わないと、バイアスが起きる

平滑性とかスパースネスとか。。

オッカムのカミソリ?

物理法則の説明をするとき、より簡単な理論の方が良い??

→例外パターンが無視されがち?

 

# 再犯率スコア

データジャーナリズムNPO

事実に基づいて、ジャーナリズムを進めよう!

COMPAS、再犯の危険率、裁判員の客観的判断のため

量刑には使っちゃだめ、保釈の可否の判断

量刑に使ってしまった事件が起きる

→話題になったので、分析してみた

予想で国ごとに差別は起きてない

が、FalsePositiveはアフリカ系が高かった。(データ分析のおかげでわかった)

 

・Formal Fairness

s)sensitive information:人種間とか性別とかインサイダーとか、,0:よくない、1:良い

↓影響する

y)target/objective:大学の合否とか借金とか,0:よくない、1:良い

 

x)non-sensitive feature

 

機械学習の不公正のどれを取り除くか?

 

-  anotation bias

人間のラベルは信用できない?

でも偏見のないデータはない

# 独立性

y^(予測)がSと独立

国ごとに借金できる率が一緒ならおk

→国の特徴を消せば良いのでは?

→Red-Lining Effect

 実は影響してる特徴があるかもしれない、目で見てもわからない

銀行:人種で金貸しの判断をするな、青線、赤線でやってた

条件付き独立

YとS独立がgiven X

 

- 帰納バイアス

元々のデータと予測した値が

Y^独立S given Y:TPRとFPRがSによって一緒になってないとダメ

 

--- ここまでは統計的な議論

いくつかの性質がある

機会の公平性、結果の公平性

手続きの公平性、分配の公平性?

 

- グループ/個人 公平性

グループで均等ならおk、個人はもう少し厳しい

個人だと、スキルとかが全く一緒の人は中々いないから難しい

 

女性用の服のモデルに女性を雇うのは良いでしょう

入試の判断、法律的に説明可能な変数を出すと問題なかった

医学部、CS部、男女の応募数、学部の合格率

Y 独立 S | E

 

-----

ネットにAPIを置いておいて、試してみる

 

分類法

- by Process

pre:事前に公平なデータにしてから学習

in:予測アルゴに組み込んで公平性

post:あとで頑張って、公平にする

- by Task

タスクごとに分類

 

Unfari Association Rules

一定以上sensitive fetureが寄与してたらダメだよ

→チェック、直接差別、間接差別

色々なデータを入れてみて、チェックする

サロゲート

 

教師あり学習

- 分類問題

pre-process:マッサージング:無理やりラベルを変えて、揃えてしまう

in-process:独立性の項を入れて、一緒に最適化する

post-process:

 

- 口コミの協調フィルタリング

友達推薦、支持政党の友達の推薦リストになってしまう

自分と同じ人の意見しか聞かなくなる:社会に多様性が無くなりますよ

公平性の補正項があると違うよ

 

- Bias in Word Embedding

ワードベクトルで演算できる?

職業に偏りが生じる?文章による→後から補正する

 

- Ranking

どこで区切っても公平になるように、ランキングしよう

 

SinGAN

Abst
 我々は、条件無しの一枚の自然画像から学習する生成モデルのSinGANを紹介します。我々のモデルは、画像内のパッチの内部分布を学習し、そこから画像のビジュアルコンテキストを含む高品質で、多様な画像を生成する。SinGANは、full convnoltional GANのピラミッドを含み、それぞれは様々なスケールの画像のパッチの分布を学習する為に反応する。これにより、任意のサイズや、アス比の、多様性があるが、学習画像の全体的な構造やテクスチャを維持した画像を生成できる。これまでのGANと比べて、我々の手法はテクスチャ画像に限定されず、条件付けもされない(ノイズから画像を作れる)。生成された画像は、リアルな画像と区別がつかない。SinGANを幅広い画像操作に利用できるをことを図示する。

 

1. Intoroduction

 GANは画像の高次分布をモデル化するのに、革新をもたらした。とりわけ、クラスが限定されて下で(顔やベッドなど)、条件無しGANはリアルでハイクォリティな画像生成で成功を納めた。でも色々なクラスのあるデータセット(ImageNetなど)ではまだ困難で、他の入力信号や特定タスク(超解像、inpainting, retargeting)などの条件付けが必要だ。

 ここで、我々はGANを新たな領域に適応する:条件無しの生成を一枚の自然画像から学習する。特に、パワフルな生成モデルを学習するのに、自然画像に含まれるパッチの内部統計量は十分な情報を運べる。SinGA、我々の新たな一枚の画像からの学習は、同じクラスからのデータセットの画像無しに、複雑な構造とテクスチャのある自然画像を扱うことを可能にする。これは、軽量のfully covolutionalのGANのピラミッドにより達成され、それぞれは異なるスケールのパッチの分布に対して、責任を持つ。一度学習されると、SinGANは、意味的には学習画像に似ているが、新しい物体の状態や構造を持つ、多様なハイクオリティな画像(任意の次元の)を生成できる。
 一枚の画像のパッチの内部統計量のモデル化は長い間、パワフルな事前分布だと、コンピュータビジョンの問題では認識されていた。クラシカルな例だと、denoising、denlurring、 超解像、dehazing、画像編集。一番近い今期ストの研究は[48]で、双方向のパッチの類似度の計量が、操作後の画像とオリジナル画像が同じになるよう保証する為、定義・最適化される。これらの研究をモチベーションにして、我々はSinGANが一つの統一学習のフレームワークで、色々な画像操作タスクを解く為に、どのように使われるのか示す。全てのケースで、良い結果を出せる。

 

1.1.Related Work

 Single Image deep models:最近のいくつかの研究は、deep modelを一枚の画像で学習する"Overfit"を提案している。しかしながら、それらの手法は、特定のタスク(超解像、テクスチャ拡張)向けにデザインされている。Shocherらは、一枚の自然画像へのinternal GANベースのモデルを最初に提案し、これはリターゲットの文脈で示された。しかし、彼らの生成は入力画像(画像から画像など)に制限されていて、ランダムサンプルには対応していない。対照的に、我々の手法はピュアに生成モデルだし(ノイズから画像を生成)、様々な画像操作タスクに対応する。条件無しの一枚画像の GANはテクスチャ生成の文脈でのみ示される。これらはテクスチャのない画像だと、意味のある画像を生成できない。我々の手法はテクスチャに制限されず、自然画像を扱える。

  Generative models for image manipulation:敵対学習のパワーは最近のGANベースの手法により、色々な画像操作タスクで披露されてきた。例えば、インタラクティブな画像編集やsketch2image、その他の画像変換タスクがある。しかし、それらはクラスを限定したデータセットで学習され、同様に画像で条件付けされる。我々は一般的な同じクラスに属する画像群の特徴をキャプチャすることに興味がないが、異なる入力データの学習に興味がある。-一枚画像の色々なスケールの全体をおおうパッチ。

 

2.Method

 我々のゴールは、学習の一枚画像の内部統計量を捉える、条件無しの生成モデルを学習することだ。このタスクはGANのセッティングと似ているが、学習画像がデータセットの画像群ではなく、一枚画像のパッチであるという点で異なる。

 我々はテクスチャ生成を超えることを選び、より自然な画像を扱う。これは色々なスケールの複雑な画像の統計量をキャプチャすることを要求する。例えば、我々は画像内の大きな物体の並びや形など、グローバルなプロパティをキャプチャしたい。詳細やテクスチャと同様に。このため我々のネットワークは、階層的なpatch-GANになっている。この階層は異なるスケールに対応している。小さいな受容野で画像全体をメモリーはできない。cGANではよくあるけど、一枚画像では初めてだ。

 

2.1.Multi-scale architecture

 ジェネレータは階層構造になっていて、それぞれに縮小された画像が対応する。各Gnは画像にあったパッチを出力する。

  course to fine っぽく、荒いスケールから徐々に生成していく。各層でノイズを注入する。最初は半分の画像サイズくらいからやる。アップサンプルしながら次へ行く。各層はfcnで行くので、任意サイズの画像を生成可能だ。

 

2.2.Training

 荒い層から詳細な層へ学習していき、学習した奴はfixする。adv lossとreconstruction lossを利用する。

 Adversarial loss:各パッチがrealかfakeか学習する。WGAN-GPのlossを使うのが、安定してよかった。各パッチをrandom cropして学習していく。

 Reconstruction loss:オリジナル画像に対応するノイズを決めて、固定して、それの再構成lossを使う。

 

実験

low resolutionで操作して、上げていくと、ナチュラルになる。

低次元で編集したのを入れてたり、学習とは違う画像を入れたり、ノイズをウォーキングするとアニメになる。

 

・感想:

PG-GANとstyle transferを混ぜたみたいだ。

超解像とかは画像でconditionされないの?

 

realm:分野、領域
responsible:責任がある
dehazing:かすみ?
bidirectional:双方向の
guarantee:保証する
unified:統一された
opt:選ぶ
disregard:無視する