任意のバイナリを安全な文字で表す
base64やURIのパーセントエンコーディングなどに共通のアイデアが、「任意のバイナリを安全な文字で表す」ことである。
モチベーション
テキストエディタで画像などのバイナリファイルを開くとひどい表示になる。
これは、テキストエディタがファイルのバイト列を何らかの文字コードで解釈しようとして失敗しているためである。いわゆる文字化けのようなもの。
あらゆるバイト列をascii印字可能文字で表現できれば嬉しいかもしれない。
そうすれば文字化けは起きないし、クリップボードに保存できるし、例えば「HTMLにテキストで画像を埋め込む」という応用などができる。
バイト列とascii印字可能文字の相互変換の方式として様々なものが考えられている。
ここからは、バイト列をascii印字可能文字に変換することを「エンコード」と呼び、バイト列とascii印字可能文字に変換するルールを「エンコード方式」と呼ぶことにする。
冗長度
https://ja.wikipedia.org/wiki/ASCII
asciiの印字可能文字はアルファベット52種、数字10種、記号33種の計95種しかない。これは1バイト(=8ビット)での01の組み合わせ256通りを表現するには不十分である。
なので、1バイトを表現するために、ascii印字可能文字からなる2文字以上の文字列で表現せざるをえない。
一方、asciiコードのテキストファイルを保存すると、1文字が1バイトで保存される。
なので、元のバイト列をそのままファイルに保存するよりも、エンコードして保存するほうがサイズが大きくなる。
冗長度として、(エンコードしたときの文字数)/(元のバイト数)というものを定義できる。
エンコード方式としては、冗長度が小さい方が望ましい。
文字の安全度
個人的な感覚として、ascii印字可能文字の中でも、比較的安全度が高い文字と低い文字がある。(左ほど安全度が高い)
【数字・アルファベット】 > 【-_+.】 > 【!?#$%&@~^*:;=】 > 【()<>[]{}'"`|/,】 > 【\】 > 【半角スペース】
安全度の基準としては「shellのコマンドラインで特殊な意味を持つかどうか」「テキストベースのデータ表現方法(XMLなど)で特別な意味を持つかどうか」くらいの感覚である。
安全度の低い文字はできればエンコードに使いたくない。
例えば、HTMLにテキストで画像を埋め込むときに < > " (半角スペース) があるとエラーが起きそうで嫌である。
エンコード方式としては、安全度の高い文字のみを使う方が望ましい。
エンコード方式例
16進数
代表的なエンコード方式としては16進数がある。
これは0123456789abcdefの16文字を4ビットに割り当て、2文字で1バイトを表す方式で、バイナリとの相性が良い。
- 例: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a (https://shattered.io/ より)
1バイトを表すのに2文字必要なので、冗長度は2になる。
バイナリとの相性が良いので、バイナリエディタの表示方式としても使われる。
http://forest.watch.impress.co.jp/library/software/binaryeditbz/
sha1のようなハッシュ値でも使われる。
http://ftp.riken.jp/Linux/centos/7/isos/x86_64/sha1sum.txt
2進数・4進数・8進数・32進数
2進数: バイト列をそのまま全て01で表示する方式。
1バイトを表現するのに8文字使うため、冗長度が8と非常に冗長。
デジタルであることを表すかっこいいイメージに使われる。
google:image:digital
あとは学習用くらいだろうか。
4進数: 0123の4文字を2ビットに割り当てる。
冗長度は8/2=4
8進数: 01234567の8文字を3ビットに割り当てる。
冗長度は8/3=2.666..
32進数:123456789abcdefghijklmnopqrstuvの32文字を5ビットに割り当てる。
冗長度は8/5=1.6
ポケモンの個体値で見ることがある。
64進数 (base64)
https://ja.wikipedia.org/wiki/Base64
アルファベット・数字A~Za~z0~9に記号+/を加えた64文字を使って6ビットを表現する。冗長度は8/6=1.333...
また、パディング用の文字として=も使う。
- 例: メールヘッダ
- Subject: =?ISO-2022-JP?B?GyRCJDMkcyRLJEEkTxsoQg==?=
- 中間の GyRCJDMkcyRLJEEkTxsoQg== の部分はISO-2022-JPの「こんにちは」(16バイト)をbase64エンコードしている
記号+/を含むのが厄介で、例えばURLに/は使いたくない。
そのような問題を回避するため、記号部分を変更したbase64変種がいくつか提案されている。
例えばURLのためのbase64は、記号に+/ではなく-_を使い、さらにパディングがない。
パーセントエンコーディング
URLにおいてマルチバイト文字や記号を扱うための方法
パーセントエンコーディング - Wikipedia
- 例(wikipedia「A応P」の記事):
- https://ja.wikipedia.org/wiki/A%E5%BF%9CP
- "%E5%BF%9C"はutf-8の「応」(3バイト)をパーセントエンコーディングしている
- "A"と"P"はエンコードなし
基本は16進数で、%とその後の2文字(0123456789ABCDEFの16種)で1バイトを表す。
ただし、アルファベット・数字・一部のascii記号はエンコードしないまま表示できる。
パーセント(%)自身も%25でエンコードしなければならない。
冗長度は、アルファベットや数字のところでは1、それ以外のところでは3になる。
quoted-printable
https://ja.wikipedia.org/wiki/Quoted-printable
パーセントエンコーディングとほぼ同じ。
=とその後の2文字(0123456789ABCDEFの16種)で1バイトを表す。
ただし、アルファベット・数字・ascii印字可能文字はエンコードしないまま表示できる。
=自身はエンコードしなければならない。
メールで用いられることがある。
unsigned charの配列
0~255の数字の配列として書いてもいいかもしれない。
- 例:
- "[227,129,147,227,130,147,227,129,171,227,129,161,227,129,175]"
- utf8の「こんにちは」をJSONの数字配列として解釈可能な文字列にしている
冗長度はおよそ3.6
JavascriptのUint8Arrayで読み込める。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array
用途
これまで書いてきたものも含む。
HTMLにテキストで画像を埋め込む
ハッシュ値や公開鍵の配布
http://ftp.riken.jp/Linux/centos/7/isos/x86_64/sha1sum.txt
https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key
7bit文字しか認識しないメール経路でも安全に日本語メールや添付ファイルを送る
テキストベースのデータ構造で、エスケープを気にせず扱う
例えばtsvを作成するとき、データにタブ文字や改行があると、単にタブでjoinするだけでは正しいtsvにならず、tsv作成用のライブラリを使って適切にエスケープする必要がある。
読み込むときも同様で、タブでsplitするだけでは駄目で、tsv読み込み用のライブラリを使わなければならない。
「データは全てbase64に変換する」というルールを適用すると、データにタブ文字も改行も入らなくなり、タブでjoin・splitするだけでtsvの作成・読み込みができるようになる。
shellでsort,cutを行うときにも安心して行うことができる。
ただし、変換せずテキストとして読むことは不可能になるし、毎回base64のエンコード・デコードを気にするよりtsvライブラリを使うほうがマシであることが多い。
一応こんな選択肢もあるよ、くらいの認識にしておきたい。
(自分用メモ) サンプリングのモチベーション
メトロポリス・ヘイスティングス法のようなサンプリングでやりたいことの自分なりの理解。正しさは保証しません。
問題設定
- データ・確率モデルは固定
- データxが与えられたとき、あるパラメータθの確率(密度) P(θ|x) の値を求めることはできる
- θの定義域のありとあらゆる範囲でP(θ|x)を求めるのは計算コスト的に無理
- θが実数なら無限の計算が必要
- 解析的に積分をするのはたぶん無理
やりたいこと
例
θを3次元の多項分布(θ1,θ2,θ3) とする。
0≦θ1≦1
0≦θ2≦1
0≦θ3≦1
θ1+θ2+θ3=1
このとき、 0.1≦θ1≦0.3, 0.3≦θ2≦0.5 となる確率を求めたいとする(θ3は自動で決まる)。
サンプリングを行い、十分に多くのサンプル点をとったとすると、θがその範囲に入る確率は
(その範囲に入ったサンプル点の数) / (全部のサンプル点の数)
で近似できる。
方法
- 適当なパラメータの初期値θcurrentを決める
- A. θcurrentからランダムに少し動かしたパラメータθnewをとる
- B. P(θcurrent|x)とP(θnew|x)の値を比べて、θcurrentを更新するかどうか決める。更新しない場合Aに戻る。
- P(θnew|x)の方が大きければθcurrentを更新
- P(θnew|x)の方が小さければ、適当な確率でθcurrentを更新。
- C. θcurrentを更新: θcurrent←θnew
- D. θcurrentをサンプル点として追加
- E. Aに戻る
- A~Eを繰り返すことで、θの本当の確率分布に近いサンプル点リストがいい感じに得られる
(自分用メモ) 回帰とニューラルネット
(自分用メモ) 重回帰と勾配降下法 - gneioagineの日記 の続き。正しさは保証しません。
確率的勾配降下法
勾配降下法では、D個の教師データに対して誤差関数の勾配を求めて重みを更新した。
勾配:
勾配の各次元(i):
重み更新:
D個の教師データを全部読んで勾配を計算→重み更新
D個の教師データを全部読んで勾配を計算→重み更新
...
と繰り返す。
確率的勾配降下法では、1個データ読むごとに勾配を計算して重みを更新する。
1番目の教師データを読んで勾配を計算→重み更新→2番目の教師データを読んで勾配を計算→重み更新→...→D番目の教師データを読んで勾配を計算→重み更新
1番目の教師データを読んで勾配を計算→重み更新→2番目の教師データを読んで勾配を計算→重み更新→...→D番目の教師データを読んで勾配を計算→重み更新
...
という繰り返しになる。
d番目の教師データを読んだ時の勾配の各次元(i):
重み更新:
ここでの勾配の逆向きは誤差関数を最小化する向きであるとは限らない。
とはいえ実用上ほぼ確実に誤差関数は減ってくれるし、非凸性にもある程度対処できるので、確率的勾配降下法はよく使われる。
以下では確率的勾配降下法を基本的に用いる。
ロジスティック回帰
二値分類問題では、教師データにおいて目的変数yが値が0または1をとる。
この場合、重回帰では都合が悪い。
例えば説明変数xが2次元として、以下のように教師データがあるとする。
これを重回帰で最適化してみる。
モデル:
最適な重み:
データy | データx | 予測値 | |
1 | (7, -3) | ||
1 | (-4, 15) | ||
1 | (2, 2) | ||
0 | (3, -1) | ||
0 | (-6, 2) |
-
誤差関数
誤差がそれなりに大きいように思えるし、4番目のデータではは0より1に近くなるのであまり望ましくない。
問題の形式と重回帰モデルの相性が悪く、できれば予測値は0〜1をとってほしい。
そこで、以下のようなモデルを導入する。
ただしはロジスティックシグモイド関数で、以下のように定義される(シグモイド関数とも呼ぶ)。
シグモイド関数の性質は下記のようなもので、二値分類と相性が良い。
- 定義域が(-∞,∞)、値域が(0,1)で単調増加
- u=0のとき
- u<0で急速に0に近づく
- u>0で急速に1に近づく
By Chrislb (created by Chrislb) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons
このモデルで適切な重みwを推定するのがロジスティック回帰である。
学習した重みを使って分類する場合、 (⇒)ならラベル1, そうでないならラベル0として分類する。
このモデルで、例えば重み: として先ほどのデータで予測値を出してみる。
データy | データx | 予測値 | |
1 | (7, -3) | ||
1 | (-4, 15) | ||
1 | (2, 2) | ||
0 | (3, -1) | ||
0 | (-6, 2) |
-
誤差がそれなりに小さくなったように思われる。4番目のデータも0に近くなった。
ちなみに、、との要素の比を一定に保ったまま絶対値を大きくしていけば、各データでとyの差を限りなく0に近づけることができる。
この場合、最適なの値を一意に定めることは難しい。
ロジスティック回帰では誤差関数は以下の交差エントロピー関数を使うことが多い。
(誤差関数の適切な選び方は「一般化線形モデル」を学べば分かるかもしれない)
各データについて、
- 教師データのy=1→を加える。が0に近ければ大きく増えて、1に近ければほぼ増えない。
- 教師データのy=0→を加える。が1に近ければ大きく増えて、0に近ければほぼ増えない。
回帰に必要な
- モデル定義
- 教師データ
- 誤差関数の定義
が用意できたので、確率的勾配降下法で最適化していく。
以下では確率的勾配降下法を使うことを前提に、1個のデータについて考える。
まず、シグモイド関数の微分について以下が成り立つ。
これを使うと
が導ける。
ニューラルネット
重回帰やロジスティック回帰でもうまくいかない回帰問題がある。
例えば説明変数xが2次元として、以下のようにデータがあるとする。
これをロジスティック回帰で上手く回帰するには、少なくとも以下の(1)(2)(3)(4)を満たすことが望ましい。
... (1)
... (2)
... (3)
... (4)
しかし、(1)(2)(3)(4)を同時に満たすことはないため、ロジスティック回帰ではうまくいかない。
((1)+(2)より, (3)+(4)よりでなければならない)
そこで、天下り的に以下のモデルを導入する。
,
,
,
uやzを除去すると、以下のように表現できる。
この予測値も、重回帰やロジスティック回帰と同様重みwと説明変数xの関数である。
重みを天下り的に以下のように設定する。
- -
- -
予測値を計算する。
データy | データx | 予測値 |
1 | (1,1) | 0.98 |
1 | (-1,-1) | 0.98 |
0 | (-1,1) | 0.0067 |
0 | (1,-1) | 0.0067 |
ということで、いい感じに予測ができる。
このモデルはニューラルネットの非常に簡単な例となっており、図として表すとよく見る感じのものになる。
このニューラルネットの解釈は以下のようになる。
- はが1.8以上ならおよそ1、そうでないならおよそ0
- はが-1.8以下ならおよそ1、そうでないならおよそ0
- はが0.5以上ならおよそ1、そうでないならおよそ0
- (ここではとのどちらかが1に近いならおよそ1と解釈してもよい)
- 以上より、が1.8以上または-1.8以下なら予測値はおよそ1、そうでないならおよそ0
このように、前段の回帰モデルの出力を後段の回帰モデルの入力にするのがニューラルネットである。
誤差関数としてはロジスティック回帰と同様に交差エントロピー関数が使える。
誤差逆伝播法
回帰に必要な
- モデル定義
- 教師データ
- 誤差関数の定義
が用意できたので、いつもどおり確率的勾配降下法で最適化していく。
説明の都合上、先ほどのものよりもう一段増やしたニューラルネットを扱う。
,
,
,
,
,
勾配の計算は力づくでやることも可能ではあるが、直感的には非常に大変そうである。
その勾配の計算に誤差逆伝播法というテクニックを使う。
まずは出力段への重みであるで計算すると、ロジスティック回帰と同様になどとできる。
また、も後で利用するために求める。
であることから、
続いて、前の段への重みである〜の勾配を求めてみる。
などとなる。
また、後で必要となるため、も求めておく。
(上のと似たような計算をする)
さらに前の段への重みである〜の勾配を求めてみる。
ここで、が変化するとが変化することに注意する必要がある。
偏微分の連鎖公式( http://www.math.kobe-u.ac.jp/HOME/higuchi/h18kogi/sect4.pdf )によると、
のように和の形にする必要がある。
そして、そのは、と同様に後段の情報を用いて計算ができる。
は、
などと計算する。
誤差逆伝播法の一般的な方法を述べる。
をとして定義すると、
として計算できる。(はのノードとのノードを接続する重み)
このように、入力層に近い側のデルタは出力層に近い側のデルタに依存する。そのため、デルタは出力層の側から入力層へ向けて順々に計算していく必要がある。これをもって「逆伝播」と呼んでいる。
最初に出力層でデルタを計算するときは、教師データのyの値を用いることができる。
そして重みで誤差関数を偏微分した値は
となる。(ただし入力層ではzはxになる)
(自分用メモ) 重回帰と勾配降下法
正しさは保証しません。
重回帰
n個の説明変数によって目的変数yの予測をしたいとする。
予測モデルとして、の重み付き線形和を採用してみる。
(は目的変数yの予測値。は説明変数に関わらず一定値のバイアス。)
このとき、適切な重みを教師データから推定したい。
教師データは目的変数と説明変数セットの組を複数個集めたものである。D個の教師データがあるとする。
...
例えば説明変数が2個で、下記のように教師データとして4個のデータがあるとする。
適当な重みwの値で予測値を出してみる。
データy | データx | 重みA: | 重みB: |
10 | (2, 5) | ||
-2 | (3, 3) | ||
12 | (4, -1) | ||
-13 | (-2, 3) |
モデル:
教師データでのyの値と、重みA・重みBでの予測値は以下のようになっており、重みBのほうが良さそうに思える。
重みA:
重みB:
教師データのy | -10 | -2 | 12 | -13 |
重みAでの予測値 | -6 | -1 | 8 | -6 |
重みBでの予測値 | -10.5 | -2.5 | 11.5 | -12.5 |
-
実際に重みBの方が良いことを示すため、「良さ」の評価指標が欲しい。
直感的には、教師データでのと推定値の差が小さくなる重みが良いと思われる。
そこで誤差関数というものを以下のように定義する。
(誤差関数の選び方には恣意性がある。差の絶対値の和など、二乗和以外のものもありうる。)
誤差関数の値が小さいほど良い重みであるとみなす。
実際に先ほどの重みで誤差関数の値を求めてみる。
教師データのy | -10 | -2 | 12 | -13 |
重みAでの | -6 | -1 | 8 | -6 |
重みBでの | -10.5 | -2.5 | 11.5 | -12.5 |
重みAのとき、
重みBのとき、
誤差関数の値が小さいので、重みBの方が良いとみなせる。
誤差関数を定義すれば、ありとあらゆるwの組み合わせの中で最も誤差関数の値が小さくなるwを「最適な」wとして定めることができる。
先ほどのデータでは、最適なwの値はおおよそである。
この重みでのyの予測値は(-9.88, -1.88, 11.92, -12.87)となり、誤差関数の値は
として求められる。
回帰問題を設定する場合、以下が必要となる。
- モデル定義(重回帰の場合)
- 教師データ
- 誤差関数の定義(差の二乗和など)
これらを最適化ブラックボックスに入力すれば、誤差関数を最小化するいい感じの重みwを出力してくれる。
勾配降下法
ここからはベクトルを導入していくことにする。
とおくと、内積を用いて以下のように書ける。
誤差関数もベクトルを入力にできる。
最適化ブラックボックスの中身を覗いてみる。やりたいことは、
- モデル定義(重回帰の場合)
- 教師データ
- 誤差関数の定義(差の二乗和など)
が与えられたとき、誤差関数を最小化するを求めることである。
を少しずつ改善してく方針で考える。
すなわち、十分小さいn+1次元ベクトルを用いて
と計算することを繰り返して、を改善する。
このとき、誤差関数が小さくなるように、を満たすようにする。
一回の更新において、誤差関数を最も小さくするの向きは、誤差関数の勾配の逆向き(と同じ向き)であることが知られている。
ただし、はn+1次元のベクトルで、
である。
重回帰での誤差関数の勾配を求めてみる。まずは3次元、データ2個で考える
で偏微分するとき、関係があるのはを含む項だけで、その値は
となる。よって、
一般に、D個のデータがあるとき、重みでの誤差関数の偏微分は以下のようになる。(とする)
これで勾配
が求められる。
あとはこの勾配に適当な縮小の係数αをかけて、(0<α<<1)
とwを少しずつ更新していけば、誤差関数の値が小さいwが得られる。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
誤差関数を最も小さくするの向きがと同じ向きであることを軽く検証する。
一回の更新においての大きさは一定で、向きは自由に変更できるとする。
多変数関数のテーラー展開によると
http://eman-physics.net/math/taylor_multi.html
らしい。()
多変数関数の引数をベクトルとして扱うと、
であることから、
ここで、は十分小さいとしているので、の要素同士の掛け算を含む二次の項は無視してよい。よって、
を適切な向きにすることで、を最小にしたい。(絶対値が最大の負の値にする)。
の内積を最小化するようなの向きを求める。
ここで、の大きさは一定だと仮定しており、はに依存しない。
2つのベクトルの大きさが一定であるとき、内積が最も小さくなるのはそれらのベクトルが逆向きのときである。
なので、はと同じ向きにすればよい。
そのときコサインが-1で、内積の値はである。
萌え豚の俺に突き刺さった漫画
寄宿学校のジュリエット
http://www.shonenmagazine.com/bmaga/juliet
正統派で高品質なラブコメ。絵がすごく可愛い。
怪滅王と12人の星の巫女
http://comic-walker.com/contents/detail/KDCW_AM05000036010000_68/
分かりやすい異能バトル+ハーレム。シスターがとてもよい。
うちの娘の為ならば、俺はもしかしたら魔王も倒せるかもしれない。
http://comic-walker.com/contents/detail/KDCW_MF00000025010000_68/
神幼女漫画と一瞬話題になったやつ。ロリの描写が本気。
あやかしこ
http://seiga.nicovideo.jp/comic/22861
ツヤツヤな黒髪ロング好き。
ふつうの恋子ちゃん
http://www.s-manga.net/book/978-4-08-845554-9.html
「ツンデレチョロインな主人公の脳内が読める」という贅沢な体験ができる。表情を変えないまま赤面するのがとてもよい。
愛しの花凛
http://www.dokidokivisual.com/comics/book/index.php?cid=848
絵が可憐すぎる。全力で童貞を殺しにかかっている。
東方鈴奈庵
http://comic-walker.com/contents/detail/KDCW_KS04000010010000_68/
東方厨だから仕方ない。霊夢のよさに改めて気づいた。
東京★イノセント
http://www.square-enix.co.jp/magazine/tachiyomi/tokyoinnocent/Contents/#
昔好きだったラブコメ。古風で不器用な雪代千歳ちゃんに当時心を奪われた。
ここ最近で感情を揺さぶられたエモ作品集
おはよう、いばら姫 (少女漫画)
https://www.amazon.co.jp/exec/obidos/ASIN/4063658139/
ほとんど家から出たことのない黒髪ロングのお嬢様に弱い。
月曜日は2限から (少年漫画)
https://www.amazon.co.jp/exec/obidos/ASIN/4091243983/
校則を破ってちょっと悪いことをするドキドキ感に弱い。
青春のアフター (青年漫画)
https://www.amazon.co.jp/exec/obidos/ASIN/4575846627/
思春期の青い思いを大人になっても引きずったままな人に弱い。
コトコノコトノハ (青年漫画)
https://www.amazon.co.jp/exec/obidos/ASIN/425314201X/
何を考えてるのか分からない女の子に振り回されるシチュエーションに弱い。
【Novelsm@ster】渋谷凛「雨に唄えば」 (ビジュアルノベル)
http://www.nicovideo.jp/watch/sm17934547
鬱屈とした子が救済される話に弱い。
お嬢さま三姉妹にぺろぺろされ続けるのをやめたい人生だった (18禁ノベル)
https://www.amazon.co.jp/exec/obidos/ASIN/479640614X/
ただただ主人公とヒロインの心情・関係性にのみスポットを当てた文章に弱い。
下僕の俺が盲目の超わがままお嬢さまの性奴隷な件 (18禁ノベル)
http://novel18.syosetu.com/n7126cq/
まっとうに青春している純愛話に弱い。
-
-
- -
-
基本的に黒髪ロングとお嬢様に弱い。
もう「強い能力を持っているが平穏に暮らしたいと思っている女の子が主人公のほのぼの異世界ライフ」であるなろう小説しか読みたくない
(多少ネタバレあり)
タイトルに挙げたジャンルの作品を最近よく読んでいる。試しに読んでいるのをざっと挙げてみる。
タイトル | 転生・転移 | 主人公 | 能力 |
---|---|---|---|
http://ncode.syosetu.com/n6475db/ | 転生 | 18才学生→10才学生・冒険者 | 世界最強の古竜のおよそ半分の魔力など |
http://ncode.syosetu.com/n1159db/ | 転生 | 社会人→18才令嬢・カフェ経営 | 気難しい幻獣と契約する・悪魔を封印するなど |
http://ncode.syosetu.com/n4483dj/ | 転生 | 社畜→300才魔女(見た目は17才) | レベルMAX(99) |
http://ncode.syosetu.com/n8139dg/ | 転移 | 20代社畜→聖女? | 聖属性魔法:Lv∞ |
http://ncode.syosetu.com/n0537cm/ | 転移 | 17才学生→冒険者 | 邪神基準で平均的な能力 |
http://ncode.syosetu.com/n4185ci/ | 転移 | 15才引きこもり→冒険者 | 強力なクマ装備・クマ魔法・クマ召喚 |
http://ncode.syosetu.com/n1583dj/ | なし(ファンタジー世界) | 9才学生 | 魔法適性9999 |
http://ncode.syosetu.com/n2532de/ | なし(ファンタジー世界) | 600年封印されていた魔王 | 死霊を操り、かつては大陸全土を席巻していた |
http://ncode.syosetu.com/n5693dn/ | なし(現代) | 15才学生・退魔業 | 超強い式神の力を借りて禍霊退治 |
異世界じゃないのも混じってるがキニシナイ。
このジャンル、読んでるとすごい癒されて幸せになるのでもっともっと増えてほしい。