r_nsdのブログ

r_nsdのブログ

勉強したこと・調べたこと・思ったことを残しておくためのブログ

MENU

離散選択モデリング入門(多項ロジットモデルの理論とPythonによる実装)

はじめに

日常には選択行動が溢れています.例えば,移動するときにはバスや鉄道,タクシーなどの選択肢から一つの交通手段を選択します.このような離散的な選択肢の中から選択をする行動をモデル化することを「離散選択モデリング」と呼びます.

本記事では,離散選択モデリングの研究の流れと,最も基礎的なモデルである多項ロジットモデルについて書きました.またPythonによる実装コードも載せています.

離散選択モデリングの研究の流れ

ランダム効用理論

人々は選択するとき,効用が最大となる選択肢を選択すると仮定します.効用とは得られる満足感のようなものであり,交通手段選択の場合は料金,移動時間などの要素からなります.人々はたとえ同じ状況であっても,同じ選択を繰り返すとは限りません.つまり選択はランダム性がある行動です.
そこで効用に確率項を入れてランダム性を考慮して選択行動を扱えるようにしたのが「ランダム効用理論」です.

ランダム効用理論が提唱されたのは,Thurstone の食べ物の嗜好の研究 (1920年代) が初めてだと言われています.しかし,彼は確率項に正規分布を使用していたため,選択確率を簡単に計算できる形に定式化できず,30年以上この研究は衰退していました.

離散選択モデリングの発展

しかし,1960年代〜1980年代の研究で,確率項にガンベル分布を仮定することで選択確率を計算できるようになりました.その結果,離散選択モデリングの研究は発展していきました.一番の功労者は,経済学者であるDaniel Little McFadden(2000年にノーベル経済学賞を受賞)です.彼の研究 [McFadden, 1973] が現在の離散選択モデル(ランダム効用モデル)の基礎となっています.

その後,静的な離散選択モデルを動的に拡張し,一回の選択ではなく,選択の系列をモデル化する「動的離散選択モデル」の研究が1980年代から発展しました.動的離散選択モデルの研究としてベースになっているのはRust の研究 [Rust, 1987a,b] です.

これらの離散選択モデルは,経済学だけでなく,交通工学の分野でも発展していますし,情報科学の分野では逆強化学習という手法として発展しています.

近年では,各分野で提案されたモデルが実は同じものであることがわかったり*1,他分野の手法を取り入れることでモデルの性能を上げたりしながら研究が進んでいます.

多項ロジットモデル

ここからは,離散選択モデルのなかでも最も基礎的なモデルである「多項ロジットモデル」について説明します.

多項ロジットモデルの概要

離散選択モデルでは,効用関数を確定項(決定項)と確率項(誤差項)の和として定義します. 効用は選択に関わる要素から算出されますが,どの要素をどれくらい重要視するかは異なるため,確定項を重みと要素の値の線形和として表します.確率項は,以下の点を包含しています.

  • 選択行動のランダム性
  • 確定項を重みと要素の線形和としたことによる誤差
  • 確定項に含まれなかった要素
  • 変数の測定誤差

これより,ある個人nのある選択肢iに対する効用関数は,次式のようになります.


\begin{aligned}
U_{in} &=  V_{in} + \varepsilon_{in} \\
&= \sum_k \beta_k x_{ikn}+\varepsilon_{in}
\end{aligned}

ここで,V_{in}が確定項,\varepsilon_{in}が確率項,\betaが重み,xが要素の値,kが要素の数です.

確率項にガンベル分布を仮定したものを「ロジットモデル」と呼びます.(正規分布を仮定したものを「プロビットモデル」と呼びます.)

ガンベル分布

ガンベル分布とは連続確率分布の一つで,極値分布のタイプI型に相当します.母数は\mu \in \mathbb{R}, \eta>0です.

平均:E(x)=\mu+\gamma\eta\gamma=0.577\cdots, オイラー定数)
分散:V(x)=\frac{\pi^ 2 \eta^ 2}{6}
最頻値:\mu

確率密度関数

\displaystyle{
f(x) = \frac{1}{\eta} \left\{ -\left( \frac{x-\mu}{\eta} \right) \right\} \exp \left[ -\exp \left\{ -\left( \frac{x-\mu}{\eta} \right) \right\} \right]
}

積分布関数

\displaystyle{
F(x)=\exp\left[-\exp \left\{-\left(\frac{x-\mu}{\eta} \right) \right\} \right]
}


# ガンベル分布の確率密度関数
x = np.arange(-5,20,0.1)
pdf1 = stats.gumbel_r.pdf(x, loc=0.5, scale=2.0)
pdf2 = stats.gumbel_r.pdf(x, loc=1.0, scale=2.0)
pdf3 = stats.gumbel_r.pdf(x, loc=1.5, scale=3.0)
pdf4 = stats.gumbel_r.pdf(x, loc=3.0, scale=4.0)
    
plt.plot(x, pdf1, label=(r'$\mu=0.5, \eta=2.0$'))
plt.plot(x, pdf2, label=(r'$\mu=1.0, \eta=2.0$'))
plt.plot(x, pdf3, label=(r'$\mu=1.5, \eta=3.0$'))
plt.plot(x, pdf4, label=(r'$\mu=3.0, \eta=4.0$'))
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("Probability Density Function")
plt.legend()

f:id:ryonsd:20191216135019p:plain

# ガンベル分布の累積分布関数
x = np.arange(-5,20,0.1)
cdf1 = stats.gumbel_r.cdf(x, loc=0.5, scale=2.0)
cdf2 = stats.gumbel_r.cdf(x, loc=1.0, scale=2.0)
cdf3 = stats.gumbel_r.cdf(x, loc=1.5, scale=3.0)
cdf4 = stats.gumbel_r.cdf(x, loc=3.0, scale=4.0)
    
plt.plot(x, cdf1, label=(r'$\mu=0.5, \eta=2.0$'))
plt.plot(x, cdf2, label=(r'$\mu=1.0, \eta=2.0$'))
plt.plot(x, cdf3, label=(r'$\mu=1.5, \eta=3.0$'))
plt.plot(x, cdf4, label=(r'$\mu=3.0, \eta=4.0$'))
plt.xlabel("x")
plt.ylabel("F(x)")
plt.title("Cumulative Distribution Function")
plt.legend()

f:id:ryonsd:20191216135109p:plain

ガンベル分布には以下の性質があります.

性質①
x_1, x_2がそれぞれガンベル分布(\mu_1, \eta), (\mu_2, \eta)に従うとき,x=x_1-x_2の累積分布関数はロジスティック分布の形になる.

\displaystyle{
F(x)=\frac{1}{1+\exp\{\eta(\mu_1-\mu_2-x)\}}
}

性質②
x_1, x_2, \cdots, x_{\tau}が,それぞれガンベル分布(\mu_1, \eta), (\mu_2, \eta), \cdots, (\mu_{\tau}, \eta)に従うとき,\max(x_1, x_2, \cdots, x_{\tau})もガンベル分布に従い,その母数は次のようになる.

\displaystyle{
\left(\frac{1}{\eta}\ln\sum_{j=1}^{J}\exp\left(\eta \mu_j\right),\,\, \eta \right)
}

選択確率の導出

ある選択肢iが選択される確率は,その選択肢iの効用関数値が他の選択肢の効用関数値よりも高くなる確率であり,この選択確率をもとに尤度を最大化する重みを推定することでモデルを構築します.


\begin{aligned}
P_n (i) &= Pr[U_{in} > U_{jn}\,\,\,\, ,{\rm for} \forall j, j \neq i ] \\
&= Pr[U_{in} > \max (U_{jn}, \,\,{\rm for} \forall j, j \neq i)] \\
&= Pr[V_{in}+\varepsilon_{in} > \max (V_{jn}+\varepsilon_{jn}, \,\,{\rm for} \forall j, j \neq i)]
\end{aligned}


ここで,\epsilon_{jn}はガンベル分布に従い,V_{jn}は定数であるため,{V_{jn}+\varepsilon_{jn}}はガンベル分布に従います.つまり,\varepsilon_{jn}(\mu=0, \eta)のガンベル分布に従うと仮定すると{V_{jn}+\varepsilon_{jn}}(\mu=V_{jn}, \eta)のガンベル分布に従います.

\displaystyle{
\max (V_{jn}+\epsilon_{jn}, \,\,{\rm for} \forall j, j \neq i) = V_n^* + \epsilon_n^*
}

とすると,ガンベル分布の性質②より,


\begin{aligned}
V_n^* &= \frac{1}{\eta}\ln\sum_{j=1}^{J}\exp\left(\eta V_{jn}\right) \\
\varepsilon_n^* &\sim gumbel \left(0, \eta \right)
\end{aligned}


これより,ガンベル分布の性質①を使うことで,次のように式変形でき選択確率が算出できます.


\begin{aligned}
P_n(i) &= Pr[V_{in}+\varepsilon_{in} > V_n^* + \varepsilon_n^*] \\
&= Pr[\epsilon_n^*-\varepsilon_{in} \leq V_{in}-V_n^*] \\
&= \frac{1}{1+\exp\left\{\eta (0-0-(V_{in}-V_n^*)) \right\}} \\
&= \frac{1}{1+\exp\left\{\eta \left(-V_{in}+\frac{1}{\eta} \ln \sum_{j \neq i}\exp \left(\eta V_{jn}\right) \right)  \right\}} \\
&= \frac{1}{1+\exp\left\{-\eta V_{in}+\ln \sum_{j \neq i}\exp \left(\eta V_{jn}\right)  \right\}} \\
&= \frac{\exp(\eta V_{in})}{\sum_j \exp(\eta V_{jn})} \\
&= \frac{\exp(V_{in})}{\sum_j \exp(V_{jn})}\,\,\,\,(\eta=1)
\end{aligned}


選択確率はソフトマックスの形になり,\etaが温度パラメータになっていますが,一般的には\eta=1に固定します.

重みの推定

全ての個人の選択に対して尤度を最大化する重み(パラメータ)\betaを推定します(最尤推定).尤度および対数尤度は次のようになります.ここで,y_{in}は,ある個人nが選択肢iを選択したときに1を,それ以外で0をとります.

尤度

\displaystyle{
L(\beta) = \prod_n \prod_i P_n(i)^{y_{in}}
}

対数尤度


\begin{aligned}
LL(\beta) &= \sum_n \sum_i y_{in}\log P_n(i) \\
&= \sum_n \sum_i y_{in}\log \frac{\exp(V_{in})}{\sum_j \exp(V_{jn})} \\
&= \sum_n \sum_i y_{in}\log\frac{\exp(\sum_k \beta_k x_{ikn})}{\sum_j\exp(\sum_k \beta_k x_{jkn})} \\
&= \sum_n \sum_i y_{in}\left\{\log \exp\left(\sum_k \beta_k x_{ikn}\right)-\log\sum_j \exp\left(\sum_k \beta_k x_{jkn}\right)\right\} \\
&= \sum_n \sum_i y_{in} \left\{\sum_k \beta_k x_{ikn}-\log\sum_j \exp\left(\sum_k \beta_k x_{ikn}\right) \right\}
\end{aligned}


この対数尤度LL(\beta)を最大化する\beta_{k}を求めます.つまり\frac{\partial LL(\beta_k)}{\partial \beta_k}=0となる\beta_{k}を求めます.ニュートン法などの最適化手法を用いることで解が求まります.

モデルの評価

評価指標

ロジットモデルの評価指標に関しては,こちらの記事がとても参考になるので,リンクを貼らさせていただきます.

[離散選択] ロジットモデルの決定係数 - ill-identified diary

一般的にモデルの評価には,尤度や情報量基準が使われますが,これらは複数のモデルのうちどれが真のモデルに近いかの比較に用いられます.これらの指標だとモデルがどれくらい選択行動を表現できるかがわかりません.
そこで,ロジットモデルの評価には,回帰分析に使われる決定係数のような指標として,McFadden の疑似決定係数が用いられます [McFadden, 1973].これは対数尤度から求まる値で,0~1に収まります.1に近いほうが良いモデルです.

\displaystyle{
\rho^ 2  = 1-\frac{\ln L(\beta)}{\ln L(0)}
}

ここで,L(\beta)は推定した重みでのモデルの尤度,L(0)は重みを0にしたときのモデルの尤度です. また,この指標ですと,説明変数xの数を増やせばL(\beta)の値が小さくなり,指標の値が大きくなるため,推定する重み(パラメータ)の数hに応じて調整を入れた自由度調整済み疑似決定係数という指標も用いられます.

\displaystyle{
\bar{\rho}^ 2  = 1-\frac{\ln L(\beta)-h}{\ln L(0)}
}

評価指標の解釈

これらの評価指標の値をどう解釈するかについては,McFaddenの論文中で触れられています. [McFadden, 1975] では,決定係数R^ 2とMcFadden の疑似決定係数\rho^ 2の関係を示したグラフが示されています.

f:id:ryonsd:20191216213852p:plain

また,[McFadden, 1977] のp.35の文章中では,以下のよう書かれています.

Those unfamiliar with the \rho^ 2 index should be forewarned that its values tend to be considerably lower than those of the R^ 2 index and should not be judged by the standards for a "good fit" in ordinary regression analysis. For example, values of .2 to .4 for \rho^ 2 represent an excellent fit.

これらより,ロジットモデルの評価指標であるMcFadden の疑似決定係数は,回帰分析に使われるような決定係数R^ 2よりも低い値をとり,0.2~0.4の値を取れば良いモデルと言えるようです.

選択行動の理解と予測

モデルの構築により,各要素xに対する重み\betaを求めました.この重み\betaから選択行動に対する考察を行います.

まずは,各要素が選択に対して影響を与えているのかどうかを確認します.この確認にはt検定を用います.

t検定

t検定は「ある一つの変数とある特定の値や,ある二つの変数の間で,平均値に差があるかどうか」の検定に使われます. 具体的には,

  • 二つの母集団がどちらも正規分布に従うと仮定したとき,平均が等しいかどうか (Welch のt検定と呼ばれる)
  • 正規分布に従う母集団の平均が,特定の値に等しいかどうか
  • 回帰直線の勾配が0と有意に異なるかどうか

の検定に使われます.

ここでは,3つ目の例のように,「推定した重み\betaが0と有意に異なるかどうか」をt検定で調べます.

重みが0と異ならない場合は,その要素は選択に影響を与えていないということになります. 逆に,t検定により重みが0と有意に異なることが証明できれば,その要素が選択に影響を与えていたということがわかります.


t検定により要素が選択に影響を与えていたことが分かると,次は各要素の重みの正負から,要素が選択に対してポジティブorネガティブどちらの影響を与えているかがわかります.

また,重みの比をとることで,ユーザーがどの要素に対してどれくらいの価値を持っているかを示す限界支払意思額 (Marginal willingness to pay: MWTP) を調べることもできます.

さらに,モデルの構築により,未知の条件での選択確率を計算することができます.つまり将来の選択行動の予測が行えます.要素の値を変えたときの選択確率を調べることを感度分析と呼びます.

Python による多項ロジットモデルの実装

実装するにあたりRの離散選択モデリングのパッケージであるmlogit とこちらのスライドを参考にさせていただきました.

使用したデータおよびコードはこちらにあげています. github.com

使用データ

今回使用するデータは,Rのmlogit で用意されている交通手段選択のデータ ("Mode" という名前のデータ) です. 車,カープール,バス,鉄道の四つの交通手段から,コスト(金銭的な?)と時間をもとに一つ選択します.

こちらはwide型と呼ばれるデータです.一行が一個人を表しています.一番上の人は,各交通手段のコストと時間をもとにcarを選択したということです.

f:id:ryonsd:20191225172434p:plain
wide型のデータ

多項ロジットモデルを適用するに当たってデータの形式をwide型からlong型へと変換します.この変換はRのmlogit で用意されているメソッドを使って行うことができます.(ここの部分は実装していません...)

f:id:ryonsd:20191225172824p:plain
long型のデータ

こちらがlong型のデータです.一行が一選択肢を表しています.1~4行目までが一個人のデータです.

モデルの構築および評価

上記の説明の対数尤度を定義し,最適化を行い重みを推定します.最適化の部分はSciPyを用いました.SciPy には関数最小化のためのscipy.optimize.minimize というメソッドが用意されています.今回はL-BFGS-Bを用いて最適化しました.これはヘッセ行列を近似的に推定しながらニュートン法を行う準ニュートン法の一つです.

f:id:ryonsd:20191225173730p:plain

こちらが重みを推定した結果になります.McFaddenの疑似決定係数が0.348となりモデルがデータにフィッティングしていることがわかります.重みのt検定の結果を見ると,どの重みも0とは異なる値になっていることがわかります.

cost に対する重みもtime に対する重みも負の値を取っていることから,コスト・時間がかかればかかるほど,その交通手段は選択しなくなることがわかります.また定数の値はバスが0,自家用車が3.29,カープールが-0.90,鉄道が0.627となっており,自家用車にポジティブな印象を持っているのに対して,カープールには少しネガティブな印象を持ってそうなことがわかります.

まとめ

このような流れで多項ロジットモデルの構築と評価と考察を行います.
モデルを構築することで,重みの考察や要素の値を感度分析などができ,モデル化した選択行動の理解と予測が可能になります.

今回は離散選択モデルの中でも基礎的な多項ロジットモデルについて書きました.他のモデルとしては,ネスティッドロジットモデルや混合ロジットモデル,潜在クラスロジットモデルなどがあります.これらのサーベイ論文としては [Train, 2009] があります.

参考文献

情報量・エントロピー

情報量,エントロピーなどの単語についてのメモです.

情報とは

  • 物事の内容・事情の報告,事件の様子の知らせ
  • ある意味を持った文字・記号・図形などで,それを受けた人間または機械の動作に影響を与えるもの(旺文社)

「物事についての知らせであり,何かしらの意味を持つもの」が情報と言えます.

データとは

  • さまざまな事実や概念について,計算的な方法で扱われるような形で,正確で明確化された言語や文字・数字で表されたもの ([Knuth, 1968])

「データ=数字」ではなく文字も含みます.また,ただの数字だけで意味がないものは情報・データとは言えないです.

情報量

「明日が火曜日である」という情報が得られたとしても,それは当たり前のことなので,得られる情報量は小さいです.「明日は雨である」という情報を得られたとき,情報量は少し大きく感じます.「明日地球が滅亡する」という情報が得られたときは,とても大きな情報を得たと感じます.このように起こる確率が小さいほど,情報量は大きくなります.これを数式で表します.

確率pでおこる事象xの情報量をI(p)=–\log p(x)で定義します.logの底は2とします.

他には情報量が満たすべき要素として以下のことが考えられ,I(p)はそれを満たします.

  • pに関して単調減少
  • 二つの独立な事象 A と B が「両方」おきたという事象の情報量は,A, Bそれぞれの情報量の和.
    つまり,Aが起こる確率をp,Bが起こる確率をqとすると,I(pq)=I(p)+I(q)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline 

p = np.linspace(0.01, 1.0, 100)
I = -np.log(p)
plt.plot(p, I)
plt.xlabel("p")
plt.ylabel("I(p)")

f:id:ryonsd:20191212102849p:plain

例えば,

  • サイコロの目が奇数か偶数か,という情報はI(p)=-\log_2 (\frac{1}{2})=1 より,2進数で1bitのメッセージで表すことができます.
  • 1~6のどれか,という情報はI(p)=-\log_2 (\frac{1}{6})\simeq 2.6より,約3bit
  • トランプの52枚のうちどれが出るか,という情報はI(p)=-\log_2 (\frac{1}{52})\simeq 5.71より,約 6bit

となり,確率が小さい事象ほど情報量が大きくなります.

エントロピー(平均情報量)

コインを投げるとき,
表が出る確率:裏が出る確率=\frac{9}{10}:\frac{1}{10}のコインAと,
表が出る確率:裏が出る確率=\frac{1}{2}:\frac{1}{2}のコインBでは,
Bのコインが表裏どっちになるかの情報を得られたときのほうが,大きな情報を得たと感じます.
Aのコインが表になるという情報が得られたとしても,もともと表が出る確率が高いコインので,その情報のありがたみは小さいです.

得られる情報量の大きさは,その事象が予測しにくいときほど大きくなります.
その予測しにくさを表したものがエントロピーであり,情報量の期待値で表します.

確率分布pに従う確率変数Xエントロピーを,次のように定義します.

 H [p(X)] = H [X] = E_p [I(p)] = -\sum p(X) \log p(X)

エントロピーが大きい=平均情報量が大きい=その事象が起こる確率が低い=予測が全くできない,という考え方です.

ある事象が起こる確率がベルヌーイ分布に従うとき(例:コインの表が出る確率がpのとき)のエントロピーはこのグラフのようになります.

p = np.linspace(0.01, 0.99, 100)
H = -p * np.log(p) + (-(1-p)*np.log(1-p))
plt.plot(p, H)
plt.xlabel("p")
plt.ylabel("H")

f:id:ryonsd:20191212110250p:plain

確率p=0.5のとき,どちらが起こるかわからず予測しにくい=エントロピーが高い,となります.

交差エントロピー

p(x), q(x)をそれぞれx\in Xの分布とするときの,二つの確率分布の間に定義される尺度です.

H(p,q)=-\sum_x p(x)\ln q(x)

def cross_entorpy_bernoulli(p, q):
    return -(p*np.log(q)+(1.-p)*np.log(1.-q))

q = np.linspace(0.01,0.99,100)
plt.plot(x, cross_entorpy_bernoulli(p=0.7, q=q))
plt.xlabel("q")
plt.ylabel("H(p, q)")

f:id:ryonsd:20191228211605j:plain

p(x)=q(x)のとき交差エントロピーは最小になります.

相対エントロピー(KLダイバージェンス,KL情報量)

二つの確率分布の差異を表す指標です.(Kullback–Leibler,カルバック・ライブラー)
pのqに対するKLダイバージェンスは,次の式で表されます.

KL[p(x)||q(x)] = \int p(X)\log \frac{p(x)}{q(x)}dx

このとき,任意の確率分布に対してKL[p(X)||q(X) ] \geq 0が成り立ち,等号が成り立つとき二つの分布が完全に一致します.KLダイバージェンスは二つの分布間の距離と言われることもありますが,KL[p(X)||q(X) ] \neq KL[q(X)||p(X) ]であるため,数学的な意味での距離ではないことに注意が必要です.

KLダイバージェンスが大きいほど,二つの分布が異なります.確率分布が異なっていれば、情報量があるとみなすのがKLダイバージェンスの考え方です.

結合エントロピー(同時エントロピー

二つの事象が同時に起こる確率,同時確率P(X,Y)エントロピー結合エントロピーと呼びます.

 H [X,Y] = -\sum_{x,y} P(X,Y) \log P(X,Y)

X,Yが互いに独立な確率変数の場合,P(X,Y)=p(X)q(Y)となるのでH(X,Y)=H(X)+H(Y)が成り立ちます.

条件付きエントロピー

事象Yが生じているという条件下における事象Xのエントロピー条件付きエントロピーと呼び,次の式で表します.

H(X|Y)=\sum_y p(Y=y) H(X|Y=y)

結合エントロピーは,条件付きエントロピーを用いて次のように表すことができます.

H(X,Y)= H(X|Y)+H(Y)

相互情報量

X,Yが互いに独立でない場合は,H(X,Y)=H(X)+H(Y)が成り立たず,その差を相互情報量と呼び,確率変数間の依存度を表します.相互情報量は常に非負の値になります.

I(X; Y) = H(X)+H(Y)-H(X,Y) = H(X)-H(X|Y)

XのエントロピーとYがわかったときのXの条件付きエントロピーの差は,Yを知ることによって減少したXの不確かさ,理解しにくさを意味し,XのYへの依存度を表します.

参考文献

「情報の数学」再入門―目からウロコ
データデータデータデータデータデータって聞き飽きたのでなんとかしたい|松本健太郎|note
The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition, Donald E.Knuth, Addison-Wesley
エントロピー入門
情報理論の基礎~情報量の定義から相対エントロピー、相互情報量まで~ | Logics of Blue
Transfer entropyを用いた神経回路の解析

オンデマンド型交通の企業まとめ

f:id:ryonsd:20191203123553p:plain

本記事では,人々の呼び出し(デマンド)に応じて車両を配車するサービスであるオンデマンド型交通の事業を行っている企業についてまとめました.

オンデマンド型交通としてライドヘイリング・配車タクシー・オンデマンド型乗合交通を挙げます.それぞれの立ち位置は下図のようになっています.

f:id:ryonsd:20191203123825p:plain

ライドヘイリング

ライドシェアと呼ばれることも多いですが,一般人が自家用車を用いて他人を送迎するサービスのことを,ライドヘイリングと呼びます. UberLyft, Grab, 滴滴出行, Olaなどが有名です.

Uber

72ヵ国6,000都市でサービスを展開しているオンデマンド型交通のトップ企業です.2019年5月10日に上場しました.Uberが提供している一般的なライドヘイリングサービスは「UberX」と呼ばれています.

またUberは送迎サービスだけでなく,飲食店からの料理の配達を行う「Uber Eats」や,トラックのドライバーと,荷物を輸送して欲しい業者をマッチングする「Uber Freight」などのサービスも展開しています.

2019年4,5月からは,アメリカのデンバーやロンドンを対象として,Uberのアプリ上で電車やバスなどの公共交通を含めた経路検索・予約・決済ができるようになっており,オンデマンド型交通と公共交通の統合を進めていることが伺えます.

Lyft

アメリカでUberに次ぐシェア率を誇る企業です.Uberからシェアを奪いながら事業の拡大を進めています.

secondmeasure.com

飲食配達や貨物輸送も手がけるUberとは異なり,旅客運送のみに注力しています.

最近では,アリゾナ州限定ですが,Google系の自動運転開発企業のWaymoが展開している自動運転タクシーサービス「Waymo One」がLyftのアプリから配車できるようになっています.

なおアメリカでは,UberLyftなどのライドヘイリングサービスを使用する人が増加したことによる渋滞悪化が問題となっており,2021年にはニューヨークで渋滞税が導入される予定です.

Grab

東南アジアで事業展開している企業です.Uber同様に,飲食の配達も行っています.

シンガポールでは2019年4月23日から,Grabのアプリ上で,ホテルの予約や映画のチケットの購入,公共交通も含めた検索などができるようになっており,扱う交通手段や産業の拡大を進めていることがわかります.

日本でもサービスを開始するようです.

滴滴出行

中国で事業展開している企業です.「DiDi Express」や,よりサービスレベルの高い「DiDi Premier」というサービスを提供しています.需要予測や配車最適化などのAI技術を開発しているDiDi AI Labs では,400都市以上から日々蓄積されるデータを解析し,更なるサービス向上を行っています.

Ola

インドに拠点を置く企業です.2018年1月からはオーストラリアでも事業を展開しています.

日本では,営業許可のない一般人が有償でタクシー事業を行うことは「道路運送法」で禁止されています.タクシーのナンバープレートが緑色であるのに対し,一般の自家用車のナンバープレートが白色であることから,一般人によるタクシー事業は「白タク」と言われています.

配車タクシー

スマホのアプリで呼び出せるようになったタクシーのことです.アプリで,タクシーの現在地の確認,事前に登録した決済情報での支払いなどができます.上記のUber, Lyft, Grab, 滴滴出行, Olaは,配車タクシーサービスも提供しています.

日本では「白タク」が禁止されているため,配車タクシー事業に力を入れている印象です.Uber滴滴出行が日本の各地で正式にサービスを開始しています.そしてGrabもサービスを開始するようです.

www.uber.com

didimobility.co.jp

jp.techcrunch.com

日本の企業としては,Japan Taxi,DeNA,みんなのタクシー(ソニー)などが挙げられます.

Japan Taxi

日本全国で使用できる国内最大手の配車タクシーアプリです.トヨタが福岡で実証実験を行っているMaaSアプリ「my route」や,経路検索アプリ「NAVITIME」でも使用可能です.また2019年5月27日に,小田急電鉄が開発中のMaaSデータ基盤「MaaS Japan」への配車タクシーシステムの接続に取り組むことも表明しており,他の企業との連携を進めていることが分かります.

DeNA

「MOV」(旧名:タクベル)というアプリを,東京及び神奈川で提供しています.2018年12月には「0円タクシー」という,限定車両が配車された場合に,無料でタクシーに乗れるというキャンペーンを行っていました.またJapan Taxi と同様に,小田急の「MaaS Japan」に参画することを表明しています.

みんなのタクシー

ソニー及びソニーペイメントサービスと,都内タクシー会社5社(グリーンキャブ・国際自動車・寿交通・大和自動車交通・チェッカーキャブ)の合弁企業です.2019年4月16日から東京都内で,「S.RIDE」というタクシーの配車,決済ができるアプリによるサービスが始まりました.

オンデマンド型乗合交通

他人との乗合を前提としたオンデマンド型交通です.乗合による迂回のため,通常より時間がかかる場合がありますが,その分値段が安くなるというメリットがあります.車両は,バスやタクシー,6人乗り程度のワゴン,自家用車です.

Uber, Lyft, Grab, 滴滴出行, Ola はそれぞれ,UberPOOL, LyftShare, GrabShare, DiDi bus, Ola Share という名のオンデマンド型"乗合"交通のサービスを提供しています.(Ola Share は経路は固定です.)

Via, MOIA, ドコモ&未来シェア, MONET(トヨタソフトバンク)などの企業もオンデマンド型乗合交通の事業,実証実験を行っています.

Via

2013年からニューヨークを初めとして,シカゴ,アムステルダム,ロンドンなどの多くの都市でオンデマンド型乗合交通のサービスを展開しています. 日本では,森ビルが2018年8月から社員向けにViaのシステム・車両を用いた実証実験を行っています.また2019年4月15日には伊藤忠商事がViaへの投資を実施しています.

MOIA

ドイツで事業展開しているVW系の企業です.2012年から2015年までヘルシンキで実証実験を行っていたKutsplusのチームもMOIAに吸収されています.2018年7月末から一般向けサービス開始し,2019年からはハンブルグでEVを使った実験を開始しています.

NTTドコモ未来シェア

「AI運行バス」という名で,横浜市前橋市九州大学など日本の各地で実証実験を行っています.2017年3月から実験を開始しており,国内で1番の実績を誇ります.

配車最適化やシミュレーションの技術を提供しているのが2016年設立のベンチャー企業「未来シェア」です.未来シェアは,東急電鉄の「郊外型MaaS」や,JR東日本が静岡で行っている「観光型MaaS」にもシステムを提供しています.

MONETトヨタソフトバンク

2018年9月に設立されたトヨタソフトバンクの合弁企業です.設立発表は,国内の時価総額1位2位の両社が手を組んだということでとてもインパクトがありました.豊田市横浜市で実証実験を実施している他,「MONETコンソーシアム」を設立し,計88社の企業間の連携を推進しています.

NTTドコモと比較すると実証実験はまだ進んでいないように見えますが,全国約150自治体との連携を進めており,今後,各地で実証実験を行っていくと思われます.

まとめ

本記事では,オンデマンド型交通(ライドヘイリング,配車タクシー,オンデマンド型乗合交通)の事業を展開している企業についてまとめました.

MaaS(あらゆる交通手段を統合し,自家用車以上の移動を提供すること)の実現のためには,運行形態が固定している電車や路線バスなどの公共交通のみではなく,運行形態が柔軟であり,Door to Door の移動を提供することができるオンデマンド型交通の発展・普及が必要です.

日本では「白タク」が禁止されていることもあり,オンデマンド型交通の普及は海外よりも遅れていますが,各地で行われている実証実験を経て,実導入が進んでいくと思われます.今後も,新たな企業の参入や政府の動向などを含めて注目していきたいと思います.

TeX とLaTeX の違いと~TeX

TeXLaTeX の違い

TeX は,組版(文字や図を配置する作業の総称)をするためのソフトウェアであり,組版の命令を行うための言語である.

組版する文字や図と組版の命令からなるテキストファイルを読み込み,命令に従って組版し,DVI 形式(device-independent. デバイスに依存しない形式)のファイルを書き出す.

LaTeXは,より高機能な命令(マクロ)を体系化したもの.

~TeX

  • TeX の拡張
    • pdfTeX:PDF を出力(海外ではこれが一般的)
    • XeTeX:Unicode を扱える
    • pTeX:日本語用の機能を追加


参考文献

図作成

ツール

Adobe Illustrator

デザイン

文書作成

ツール

TeX

逆強化学習とは

強化学習は,長期的な報酬を最大化するような方策を求めることを目的としていました.

囲碁の場合は勝つ(相手より陣地をとる)と報酬がもらえ,迷路の場合はゴールにたどり着けば報酬がもらえます.このように囲碁や迷路では報酬の設計が簡単です.

しかし現実問題では報酬の設計が困難な場合があります.例えば,車の運転では,何をもって良い運転なのかを設計するのは難しいです.安全であれば良いのか,目的地に早く着けば良いのか,どういう状態になったら良いのか,を判断するのが困難であり,人によっても変わってきます.

このように報酬を設計するのが困難な場合に,エージェントが最適な方策に従って行動していると仮定し,方策(の結果生成された行動データ)から報酬を求める手法を強化学習といいます.

報酬から方策を求める強化学習と逆のことをしているので,逆強化学習と呼ばれます.

f:id:ryonsd:20190908161300p:plain

強化学習の適用例

エキスパートからの学習
エキスパート・熟練者の最適な行動から報酬を学習する

  • タクシーの運転
    • 熟練のタクシー運転手が何を報酬として運転しているかを学習する
  • TVのCMの配信 (NEC)

動物や人の行動解析
動物や人が最適or準最適な行動をしていると仮定し,行動履歴から報酬を学習する

  • 交通手段の選択
  • 歩行者の移動
    • 歩行者が移動するときの報酬を学習し,それを用いて経路予測を行う [Kitani, et al., 2012]
  • 線虫の行動
  • 海鳥の飛行
    • 海鳥が長距離移動をするときの報酬を学習し,経路予測やデータが欠損している部分の補完を行う [Hirakawa, et al., 2018]

強化学習の手法

大きく分けて次の3つがあります.