furuhashilab / 2023gsc_TaiyuOzawa-

Creative Commons Attribution 4.0 International
0 stars 0 forks source link

自然言語処理AI メモ #11

Open zawa11 opened 9 months ago

zawa11 commented 9 months ago

自然言語処理(NLP)とは 非論文 https://aismiley.co.jp/ai_news/what-is-natural-language-processing/

自然言語理解(NLU) 自然言語理解(NLU)とは、自然言語処理の内の一分野であり、「テキストや音声の構文(文の文法的構造)、意味(文が意図する意味)解析を使用することで文の意味を判別していく技術」です。

そんなNLU は、関連するオントロジーも構築していくことが特徴として挙げられます。オントロジーとは、語と句の間の関係を指定するデータ構造のことです。人間は、日常会話においてごく自然にこのオントロジーを行っているわけですが、機械が人間と同じようにさまざまなテキストの意味を理解するためには、これらの分析を組み合わせなければなりません。

自然言語生成(NLG) 自然言語生成(NLG)も、自然言語処理の内の一分野です。コンピューターの読解力に焦点を置いた技術ですが、自然言語生成(NLG)はコンピューターが文章を生成できるようにしている点が大きな特徴といえます。 自然言語生成(NLG)は、あるデータ入力に基づき、人間の言語によってテキスト応答を生成していくプロセスを指します。ここでテキストが生成されたら、音声合成サービスを介して音声の形式に変換していくことも可能です。そんな自然言語生成(NLG) には、テキストの要約機能も含まれます。これは、情報の整合性を保ちながら入力された文書の要約を生成していくという仕組みとなり、AI の革新的技術として大きな注目を集めています。

自然言語生成(NLG)システムは、もともとテンプレートを使用する形でテキスト生成を行っていました。何らかのデータ・クエリーをもとに、言葉遊びゲームのような形で空白を埋めていたわけです。しかし、技術の発展に伴い、再帰型ニューラル・ネットワークやトランスフォーマーの適用が可能になり、リアルタイムでより動的なテキスト生成を行えるようになりました。

コーパス コーパスとは、自然言語処理を行う際に必要となる「自然言語の文章を構造化して大規模に集積したもの」を指します。このコーパスの分析を行うことで、状況に適した言葉の意味、使い方を理解することができるようになるわけです。最近では、コンピューター自体の処理性能や記憶容量も高まってきている状況にあるため、より大規模なコーパスを利用して言語処理を行うことができるようになっています。

特に近年では多くのスマホユーザーがSNSによる情報発信を行っている状況にあり、日々大量の言葉を用いたやりとりが行われている状況です。そのため、こういったSNSのデータを収集していくことで、より一層大規模なコーパスを作成することができるようになるかもしれません。

形態素解析 機械可読辞書とコーパスの用意が完了すると、次に行われるのが形態素解析という作業です。「形態素」は言語学の用語であり、意味を持つ表現要素の最小単位のことです。これだけでは意味が分からない方も多いかと思いますので、先ほどの「黒い目の大きい金魚」という言葉を用いて解説していきます。

この「黒い目の大きい金魚」というフレーズは、「黒い」「目」「の」「大きい」「金魚」という形態素で分割することができるわけです。このように分割していく作業を「形態素解析」と呼びます。形態素解析を行うことで意味のある情報の取得ができるようになり、それぞれの形態素に「形容詞」「名詞」「助詞」といった品詞を適切に割り当てていくことが可能になるのです。ただ、どれくらい詳細な品詞を割り当てるかどうかは形態素解析を行うツールの精度によって異なるため、一概に測ることはできません。

意味解析 意味解析とは、構文解析された文章内の意味を解釈していく工程のことです。日本語の場合、ひとつの原文に対して複数の解釈ができるケースも少なくありません。その一例として、以下のような文章が挙げられるでしょう。

「私は冷たいビールとメロンが好きだ。」

この文章の場合、「私は|冷たい|ビールとメロン|が好きだ。」という解釈であればどちらも「冷たい」と認識できます。しかし、「私は|冷たいビール|と|メロン|が好きだ。」という解釈であれば、メロンの冷たさは問わないことになるわけです。 このように、複数の解釈ができる文章において、正しい解釈を選択するために必要となるのが意味解析です。意味解析においては、「意味」という概念を持たない機械に対して自然言語文の意味を適切に伝え、理解させなければなりません。

しかし、日本語においては、一つの単語に複数の意味がある場合も多いため、他の単語とのつながりを踏まえた上で、適切な候補を選び出す必要があります。その候補を絞り込む作業は、非常に難易度が高い処理なのです。

→ テーマを「ワード」に絞る場合は関係なさそう

個人的見解 「オントロジー」、「形態素解析」の理解が重要になりそう

zawa11 commented 9 months ago

論文 https://www.jspa-nsc.com/dcms_media/other/igakunoayumi_21.pdf

自然言語処理AI Bard Titan Jurassic-2

GPT Generative Pre-trained Transformer

Transformer:Googleが2017年に発表した深層学習モデル 連続したデータの関係を追跡することによって文脈や意味を学習するニューラルネットワーク

Transformer は,データの関係性を学習し決定する“Attention”とよばれるメカニズムが使用されている。Attention は、文章のような前後の並びが重要なデータを扱うことにできることが特長である。従来のモデルは文頭から順番に単語をひとつずつ処理していたのに対して,Attentionは文章内の単語間の関係を学習し,重要な情報を特定する。これにより、Attention を用いた Trans-formerは従来よりも高速な処理が可能となった。元々は自然言語処理の領域で活用されていたが、画像・オーディオ・ビデオなど,より大きなデータを扱う領域への応用も期待されている

zawa11 commented 9 months ago

https://www.jspa-nsc.com/dcms_media/other/igakunoayumi_21.pdf 論文

プロンプトエンジニアリング 生成 AIを活用するテクニックとして,プロンプトエンジニアリングという技術が注目されている(図3). 対話型 AIに質問する際に入力する文字列のことを「プロンプト」と呼ぶ。プロンプトエンジニアリングは,AIに対して適切な質問や指示を与えることで,より望ましい結果を引き出す技術です ある。質問の目的や,回答者(AI)の職業,質問者の知識の度合いなど、詳細な設定を追加していき、回答を目的に適ったものへとブラッシュアップする。 画像などの生成 AIを使用する際にも、使用目的は何か,写真か絵画かイラストか、状況や妻囲 気を細かく伝えるプロンプトエンジニアリング が、精度の高いアウトプットを得るためには有用である。

zawa11 commented 9 months ago

The Power of Scale for Parameter-Efficient Prompt Tuning https://arxiv.org/pdf/2104.08691.pdf 論文 https://ai-scholar.tech/articles/prompting-method/eff-prompt-tuning 非論文

あまりに難しすぎるけど、良いこと書いてありそう 下が日本語の要約記事

zawa11 commented 9 months ago

画像変換 AI における画像の情報量に依る生成画像精度の非対称性について file:///Users/ozawataiyu/Downloads/2%E6%9D%BE%E5%B7%9D%E7%94%BB%E5%83%8F%E5%A4%89%E6%8F%9BAI%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E7%94%BB%E5%83%8F%E3%81%AE%E6%83%85%E5%A0%B1%E9%87%8F%E3%81%AB%E4%BE%9D%E3%82%8B%E7%94%9F%E6%88%90%E7%94%BB%E5%83%8F%E7%B2%BE%E5%BA%A6%E3%81%AE%E9%9D%9E%E5%AF%BE%E7%A7%B0%E6%80%A7%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.pdf

意図から外れる結果もあるが,総合して非常に強力な画像生成モデルである事は間違いない.ただ,何かを「付加する」外れ方が多く,「削除する」外れ方があまりない点が推察される.先の(b)の例でも,「単円」というシンプルな概念に対し,派手だったり歪んでいたりする画像を生成していた.ここから,拡散モデルにおいて,同じ画像変換(生成)タスクでありながら,ある概念について具体化する事は「得意」であり,逆に抽象化する事は「不得意」である,という性質を持っているのではないかと考えられる.

pix2pix とその性質

zawa11 commented 9 months ago

https://www.imagazine.co.jp/gan%EF%BC%9A%E6%95%B5%E5%AF%BE%E7%9A%84%E7%94%9F%E6%88%90%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B%E3%80%80%EF%BD%9E%E3%80%8C%E6%95%99%E5%B8%AB/

GANについて GANは、イアン・グッドフェローらが2014年に発表した論文で、2つのネットワークを競わせながら学習させるアーキテクチャとして提案された その論文 https://proceedings.neurips.cc/paper_files/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf

GAN zoo 様々なGANが蓄積されているGitHub https://github.com/hindupuravinash/the-gan-zoo/blob/master/README.md

GANに関する説明動画 https://www.youtube.com/watch?v=rhTH46GywfU

zawa11 commented 9 months ago

ディープラーニングを利用して自動的に画像を生成する画像生成モデルの種類 めっちゃわかりやすいサイト https://note.com/it_navi/n/ne238a3253b11

 一般的に、ディープラーニングを利用して自動的に画像を生成する画像生成モデルとしては、大きく分けて以下の4種類のモデルがあります。

(1) 変分オートエンコーダー(VAE)  VAE(Variational Auto-Encoder)は、入力データを特徴量に圧縮し、その特徴量をまた元のデータに戻すという仕組みのオートエンコーダーの一種で、この特徴量に確率分布を導入することにより、未知のデータを確率的に生成できるようにしたモデルです。

(2) 敵対的生成ネットワーク(GAN)  GAN(Generative adversarial network)は、生成器(ジェネレーター)と識別器(ディスクリミネーター)という2つのネットワークから構成されています。画像を生成する場合は、生成器が訓練データを基に本物そっくりな画像を出力し、識別器がその画像が本物か偽物かを判定します。生成器は識別器を欺こうと学習し、識別器はより正確に判定しようと学習します。GANは、このように2つのネットワークが相反する目的のために競い合うことで、生成する画像の精度を上げていくモデルです。

(3) フローベース生成モデル  フローベース生成モデル(Flow-based generative model)は、正規化フローという手法を活用し、確率分布を明示的にモデル化することによって、複雑な分布に基づいた新しいサンプルを生成できるようにしたモデルです。

(4) 拡散モデル  拡散モデル(Diffusion Model)は、元データに徐々にノイズを加えて、完全なノイズになるまでのプロセスを逆転し、ノイズを徐々に除去することによってデータを復元するプロセスをモデル化して、新しいデータの生成に利用するモデルです。  拡散モデルは、トレーニングの安定性と生成画像の品質の高さで、最近、注目されており、DALL-E 2やImagenなどの最新の画像生成モデルで採用されています。

https://www.businessinsider.jp/post-257703 まず、画像生成AIには最低二つのニューラルネットワーク(脳の神経細胞の仕組みを模した数理モデル、以下NN)が使われる。図では水色で示した。「Generator(生成器)」と呼ばれるNNと、「CLIP(Contrastive Language–Image Pre-training; 言語-画像事前学習モデル)」と呼ばれるNNだ。

「Generator」は与えられた潜在変数Z(図では赤い四角で表されている)をもとに、画像を生成する。

ここで大事なのは、「Generator」は「Zという変数を画像に変換するだけ」のAIであるということだ。

ではZの値はどのように決めたらいいのか?

与えられたキーフレーズ(つまり指示文)と、生成された画像をCLIPというNNが読み込み、「渡された二つのデータがどのくらい違和感があるか」という「距離」を導き出す。この距離をもとに、Zへとフィードバック(緑の矢印)し、Zを少しずつ移動させていく。

CLIPが感じる「距離」が短くなればなるほど、絵は説得力のあるものになっていく —— という具合だ。

今、世界各国で作られている画像生成AIは、細かな方式は違えどだいたいこの方法で作られている。

解像度を上げるために後段に高解像度化NNを入れたり、人物を強調するため、または人物を排除するためにフィルタが入ったり色々な操作が外部に加わることはあるが、基本的にはこうした原理に基づいている。

したがって、でき上がる「絵」の方向性を決定するのは、実は実際の絵を生成する「Generator」ではなく、絵と文章の違和感を感じ取り、Generatorを指導する「CLIP」の方だと言うことになる。

いわば、Generatorは職人、CLIPはディレクターというわけだ。

CLIPというディレクターに指示を出すのは、キーフレーズを与える「人間」である。


GANと拡散モデルでは、精度というより、生成される画像の多様性が異なる

zawa11 commented 9 months ago

Midjourneyの仕組みとStable Diffusionの仕組みの違いについて https://www.vons.co.jp/digital/11/

zawa11 commented 9 months ago

拡散確率モデルに関して分かりやすいサイト https://ja.stateofaiguides.com/20220412-dalle-2-image-generation/

zawa11 commented 9 months ago

汎用言語モデルと複数の特徴を組み合わせた攻撃的な文の判定 http://www.pluto.ai.kyutech.ac.jp/~shimada/paper/NLC2022_Li.pdf