2020-04-01から1ヶ月間の記事一覧

日本語CTRLを1から学習する - 13

はじめに 前回 前処理方法を変更して再学習を開始した。 現状250000ステップまで進んだのでここまでの結果をまとめる。 推論結果 前回同様、青空文庫データの「庭をつくる人」(室生犀星)の序文入力結果。太字は入力文 。 元文章の序文 つれづれ草に水は浅い…

日本語CTRLを1から学習する - 12

はじめに 日本語CTRLを学習し始めてから1週間ほどたったので 現状と課題についてまとめる。 学習状況 現状550000Iterほど学習が進んでいる。 元文章の再現 青空文庫データの「庭をつくる人」(室生犀星)の序文入力結果。太字は入力文 元文章の序文 つれづれ草…

ASPについて学ぶ - 3

はじめに [前回] はDeep LearningによるTTS(Text To Speech)の手法である Tactron2 + Waveglowについて触れた。 今回はTTSの学習を行うために必要なデータ作成方法と 前処理について検証した。 データ作成方法 TTSは文字情報から音声を合成するタスクである…

ASPについて学ぶ - 2

はじめに 前回 Text To Speech (TTS)手法の概要について調べた。 今回はTTSに関するDeep Learning手法を調査し、実際に動かしてみる。 Deep LearningにおけるTTS 以下のページが分かりやすくまとめてくださっていた。 https://gist.github.com/tosaka2/30032…

日本語CTRLを1から学習する - 11

はじめに 今回もCTRLの学習経過を記載する。 そろそろ何か変化が欲しい。 推論結果 350000 ステップの推論結果 明日世界が滅ぶなら 青空 明日世界が滅ぶなら、明日は、明日は、明日は、明日は、明日は、明日は、明日は、明日は、明日は、明日は、明日は、明…

ASPについて学ぶ-1

はじめに 今回からASP(audio signal processing)について text to speech(TTS)タスクに対するDeep Learning を中心に調査・検証していく。 TTS text to speechは文字情報を音声に変換する技術である。 読み上げ技術においてはSiriに代表されるAIアシスタント…

音声信号処理について学ぶ

はじめに このシリーズはこれまであまり触れてきたことがない機械学習分野を学ぶ シリーズの第二弾で音響信号処理(ASP)について学ぶ。 今回は音声信号処理関連のDeep Learningを調査する。 Deep Learningにおける音声信号認識 参考: 音響信号処理におけるDee…

日本語CTRLを1から学習する - 10

はじめに 今回もCTRLの学習経過を記載する。 学習が260000ステップ程度で停止していたので再起動した。 推論結果 25000ステップの学習モデル。 明日世界が滅ぶなら 青空 明日世界が滅ぶなら、世界は滅ぶ、と、私は、そのように、そのように、そのように、そ…

日本語CTRLを1から学習する - 9

はじめに 今回もCTRLの学習結果だけ記載する。 推論結果 現状最新のモデルは180000 Iterのモデル。 明日世界が滅ぶなら 青空 明日世界が滅ぶなら 明日世界が滅ぶなら 明日世界が滅ぶなら 明日世界が滅ぶなら 明日世界が滅ぶなら 明日世界が滅ぶなら 明日世界…

日本語CTRLを1から学習する - 8

はじめに 前回GCP上で日本語CTRLを学習し始めた。 今回は学習したモデルの途中経過の確認を行う。 学習1日目。 学習途中経過 現状10000 Iterが2時間40分ほどで進んでいるので、 1 step に1 s程度かかっている。 学習速度は学習開始からほぼ一定。 現時点で95…

日本語CTRLを1から学習する - 7

はじめに 前回までCTRL1の学習に必要なものを一通り準備してきた。 今回は実際にGCP上で学習を始めるための検証を行う。 データのやり取りについて これまで学習用のデータの前処理はGoogle Colaboratory上で行ってきた。 (データの保存はGoogle Drive) 学習…

日本語CTRLを1から学習する - 6

はじめに これまでCTRL1の学習に必要な要素をまとめてきた。 今回は実際に学習を行うコードを実装した。 https://github.com/NeverendingNotification/japanese_ctrl 学習対象データ 今回学習を行うデータは以下の3つとしている。 日本語wikipedia2 青空文庫…

日本語CTRLを1から学習する - 5

はじめに 前回まで学習の基本的な設定を行ってきた。 今回はCTRLの学習高速化について調査・検証する。 Deep Learning学習高速化について Deep Learningの学習高速化については以下のようなアプローチが考えられる。 Neural Netの軽量化 プログラムの最適化 …

日本語CTRLを1から学習する - 4

はじめに 前回まで日本語データの収集や前処理について検証してきた。 今回はCTRLの学習について検討した。 CTRL CTRLは Keskar et al. 2019で提案された制御つきの言語生成モデルである。 英語に対して学習済みのCTRLによる推論の検証は以前の記事で行った…

日本語CTRLを1から学習する - 3

はじめに 今回は日本語文章生成のための前処理について調べ SentencePieceを用いて青空文庫のデータに対して文章のトークン分割を学習した。 検証はgoogle colaboratoryで行った。 ダウンロード 青空文庫のデータは以下のページからダウンロードできる。 htt…

日本語CTRLを1から学習する - 2

はじめに 前回は学習環境として想定されるGCPの使い方を覚えた。 今回は学習対象となる日本語データセットについて調査する。 日本語のデータセット 日本語のデータセットは数多く公開されている。 参考: http://nlp.ist.i.kyoto-u.ac.jp/index.php?NLP%E3%8…

日本語CTRLを1から学習する - 1

はじめに 前回 日本語での文章生成器作成のために必要なことをまとめた。 今回は計算リソース確保のためにGCPについて調査した。 GCP GCP はGoogle が提供するクラウドプラットフォームである。 GCPで機械学習を行うためには以下の処理が必要である プロジェ…

NLPを学ぶ - 9

はじめに 前回まではtransformerモデルについて調査・検証してきた。 これまで検証してきたデータセットは基本的に英語であったが、 最終的には日本語での文章生成にtransformerを使いたい。 そのため今回は日本語のテキスト生成にtransformerを使うためにど…

NLPを学ぶ - 8

はじめに 今回はTransformerを用いた文章生成について調査・検証する。 GPT-2, CTRL2つのモデルについて触れてみる。 検証ライブラリはtransformersを用い、環境はGoogle Colaboratoryで行う。 GPT-2 GPT-2はOpenAIが提案したTransfomerを用いた言語生成モデ…

NLP を学ぶ - 7

はじめに 前回 BERTについて基礎を学んだが今回はNLP関連の最新モデルをまとめる。 前回に引き続き transformersライブラリを利用する。 NLPモデル transformersには以下のモデルが実装されている。 NLPモデル 0 BERT 1 OpenAI GPT 2 OpenAI GPT2 3 Tran…

NLP を学ぶ - 6

はじめに 今回はBERTについて正しく理解したい。 BERT1はTransformerを用いたは汎用的な文章の表現モデルである。 Fine-tuningにより様々なタスクでSOTAを達成した。 BERTに関する解説記事はすでに多く存在するため、実際に自分で触れて 気になった部分を中…

NLP を学ぶ - 5

はじめに 文章要約は与えられた文章を要約するタスクである。 文章要約には 抽出型(Extractive Summarization) 抽象型(Abstractive Summarization) の2種類が存在し1、抽出型は与えられた文章から重要と思われる文章や単語を抽出するタスクであり、抽象型は…

NLP を学ぶ - 4

はじめに 今回は前回https://nakamrnk.hatenablog.com/entry/2020/04/03/172314に引き続きNLP関連のデータセットに 触れてみる。今回はSNLI(含意判定)とMulti30K(翻訳)のデータセットについて実際にモデルを学習してみる。 SNLI SNLI(https://nlp.stanford.e…

NLP を学ぶ - 3

はじめに 今日はNLP関連の一般公開されているデータセットとその解析手法について調査する。 データセットの特性を理解することは機械学習モデルを構築するうえで重要である。 手頃に操作可能なサイズのデータセットに実際に触れることでそれらの手法を理解…

NLP を学ぶ - 2

はじめに NLP関連の機械学習の勉強を進める。 今回はNLP関連に利用するpython ライブラリを調査する。 今後NLP関連の実装を進める上で有用そうなものを今のうちに知っておきたい。 NLPの処理段階とライブラリ 機械学習は以下のようにいくつかの段階に分かれ…

NLP を学ぶ

はじめに 自然言語処理(NLP)は人間が扱う言語を処理する技術分野である。 これまでNLP関連の技術はKaggleのcompetitionなどで軽く触れたくらいで しっかり勉強したことがなかったため今回は疑問に思った以下の2点について調査した。 NLPの応用事例 NLPのベン…