手段を問わずにお金を稼ぐことを国から推奨されている

今村仁司の「仕事」を読んでいる。様々な文化において労働がどのように取り扱われているかを分析・比較することで現代における労働がどのようなものをかを明らかにする本である。古代ギリシャ時代、プラトンやアリストテレスは高利貸のような、貨幣という幻想しか生み出さない貨殖術に否定的であったという。 この考えは、ごく最近まではあったのではないかと思う。古くて有名な例を持ち出せば、渋沢栄一の「論語と算盤」も、道徳と経済の両方を重視している。 それが今や日本ではNISAである。国に株を買えと勧められている。株を買って、その価格が上がって、配当が入ったとして、株主であるあなたは何かを生み出したのだろうか?こう言うと、リスクを取った投資によって事業が成長して、とか、金融市場の流動性が、などの反論が出てくるが、そういったものはすべてここでは却下です。 お金をどう稼ごうが関係ないですよ、あなたが汗水垂らして働かなくても、お金に働いてもらいましょう (こういう言い方をよく耳にする) 、というわけである。 翻って、闇バイトという言葉が出てきて久しい。高額な報酬につられて集められ、詐欺や強盗などの犯罪の実行役をやらされることだ。アングラな世界に興味があって書籍や漫画、動画をよく漁っているので、出典は定かではないが、こういう犯罪者は「老人がラクして稼いで溜め込んだ金を、俺達が奪って何が悪い」という正当化を刷り込んだり、「x万円の稼ぎで、万が一捕まってもほぼ執行猶予がつく」という報酬とリスクを天秤にかけたりするそうである。お金をどう稼いでもいいですよ、と国が国民に呼びかけていることに、ある種通ずるのではないだろうか。 お金儲けにまつわる (あるいはそれに限らないのかもしれない) 倫理・道徳が急速に変化していっているように感じる。

2026年8月9日

書評「ブルシット・ジョブ―クソどうでもいい仕事の理論」

『ブルシット・ジョブ ― クソどうでもいい仕事の理論』デヴィッド・グレーバー著 クソどうでもいい仕事、と聞いて心当たりがまったくない人というのは少ないのではないか。仕事に充足感を感じられるかどうか、というのが現代に生きる人々にとって重要な関心事になっているであろうことは、「やりがい搾取」という言葉が広まったり、「働きがいのある会社ランキング」といったランキングが毎年発表されたりしていることからも伺える。 本書では、こうした仕事への充足感を求める動向とは裏腹に、著者のもとに寄せられた、クソどうでもいい仕事につく人からの嘆きの声をもとに 、クソどうでもいい仕事すなわち"ブルシット・ジョブ"を定義し、なぜ現代においてブルシット・ジョブが増えていているのか、なぜそれがまかり通ってしまっているのかに鋭く切り込む。軽快な筆致で著者が暴き出す人々の労働に対する考え方の不合理さとその歴史的背景についての鋭い視点には、興奮せざるをえない。 中でも、実は労働者はみずからブルシット・ジョブを求めているのであるという洞察はかなりヤバい。労働者はみずからの仕事を嫌悪しているがゆえに、それに耐えるということで自尊心の感覚を得ているというのだ。その感覚の裏返しとして、我々はなんの価値も感じない労働に耐えた対価として金銭を得ているのだから、好きで絵を描いているイラストレーターのイラストには報酬を払う必要がない、学校の先生は子どもを育てるという重要な役割を担っているのだから給与は低くあるべきだ、という考えが出てきてしまう。これは千葉雅也が「現代思想入門」で解説している、フーコーが論じた権力の脱構築と似た関係にある。フーコーは、権力によって支配される側は支配されることを望んでいる側面があり、権力というのは双方向的なより複雑なものなのであると論じた。フーコーと対応させてみれば、グレーバーの指摘は労働の脱構築なのである。 本書は、著者がいう通り、あくまでブルシット・ジョブが増えていること、それが忌避されていることの文化的起源を考察する本で、ではどうしたらよいか、を考える本ではない。労働の脱構築の先に我々は何を目指すのか。一労働者として考えていかなくてはいけない。

2022年9月19日

Rのdplyrで複数のカラムをmutateする

Version 1.0.0以降のdplyrで複数のカラムを mutate するには、mutate_atは非推奨で、代わりにmutateとacrossを使います。 例えば、irisでSepal.Lengthの値をもとにした各カラムの相対値を求める場合は、以下のように書きます。 > iris %>% mutate(across(contains("."), ~ . / Sepal.Length)) %>% head() Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 1 0.6862745 0.2745098 0.03921569 setosa 2 1 0.6122449 0.2857143 0.04081633 setosa 3 1 0.6808511 0.2765957 0.04255319 setosa 4 1 0.6739130 0.3260870 0.04347826 setosa 5 1 0.7200000 0.2800000 0.04000000 setosa 6 1 0.7222222 0.3148148 0.07407407 setosa 1.0.0以前であれば、mutate_atを使っていたと思いますが、これにはバグがあり、上記のような計算をしようと思うと、以下のように、処理 (.funs) の中に、操作するカラム自身が含まれているときに、期待どおりの動きません。1.0.0以降ではmutat_atをはじめとした、mutateの関連メソッドは非推奨になっており、このバグは今後修正の予定はないようなので、注意が必要です。 > iris %>% mutate_at(vars(contains(".")), ~ . / Sepal.Length) %>% head() Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 1 3.5 1.4 0.2 setosa 2 1 3.0 1.4 0.2 setosa 3 1 3.2 1.3 0.2 setosa 4 1 3.1 1.5 0.2 setosa 5 1 3.6 1.4 0.2 setosa 6 1 3.9 1.7 0.4 setosa

2021年2月19日

レート歪み理論

ある情報源 $X \sim p(x)$ を $R$ ビットで符号化と復号をした結果 $\hat{X}$ が得られるとします。 この情報源 $X$ とその代表値 $\hat{X}$ のサンプルがどれくらい異なっているか(歪み)を表すコストとして歪み関数 $d(x,\hat{x})$ を考えます。 許容する歪み $D$ に対する符号化ビット数の下限 $R$ をレート歪み関数 $R(D)$ と呼び、これは $$ R^{(I)}(D) = \min_{p(\hat{x}|x) : \sum_{(x,\hat{x})} p(x, \hat{x})d(x,\hat{x}) \leq D} I(X; \hat{X}), $$ と定義される情報レート歪み関数と一致します。ここで $I(X;\hat{X})$ は相互情報量です。 参考文献 Cover, T. M. & Thomas, J. A. (2006) Elements of Information Theory (2nd ed.). Hoboken, New Jersey: A Wiley-Interscience publication

2020年4月1日

KKT条件

KKT条件 (Karush-Kuhn-Tucker conditions)とは、非線形計画問題における最適性の1次の必要条件です。 非線形計画問題 $$ \begin{align*} \min f(x) &\\ {\rm subject\ to\ } h_i(x) &= 0 , i = 1, \cdots, m\\ g_j(x) &\leq 0, j = 1, \cdots ,r \end{align*} $$ の局所最小解 $x^*$ に対して、KKT条件 $$ \begin{align*} &\nabla f(x^*) + \sum_{i} \lambda_i \nabla h_i(x^*) + \sum_j \mu_j \nabla g_j (x^*) = 0\\ &h(x^*) = 0\\ &g_j(x^*) \leq 0 ,\ \mu_j \geq 0 ,\ \mu_j g_j(x^*) = 0,\ j = 1, \cdots r \end{align*} $$ を満たす $\lambda \in R^m$ と $\mu \in R^r$ が存在します。 ...

2020年3月17日

線形計画問題

例題 ある工場で製品1、製品2を生産します。製品1は原材料Aを1kg、原材料Bを3kg使用し8万円で売れます。また、製品2は原材料Aを1kg、原材料Bを1kg使用し6万円で売れます。原材料Aが4kg、原材料Bが6kgあるとき、製品1と製品2をいくつずつ作れば利益が最大になりますか? 製品1 製品2 在庫 原材料A [kg] 1 1 4 原材料B [kg] 3 1 6 価格 [万円] 8 6 解 製品1を $x_1$ 個、製品2を $x_2$ 個つくるとします。 この問題は $$ x^* = arg \max_x \left(\begin{array}{cc}8 & 6 \end{array}\right) \left(\begin{array}{c}x_1 \\ x_2 \end{array}\right) \\ \left(\begin{array}{cc} 1 & 1 \\ 3 & 1 \end{array}\right) \left(\begin{array}{c} x_1 \\ x_2 \end{array}\right) \leq \left(\begin{array}{c} 4 \\ 6 \end{array}\right) \\ x_1, x_2 \geq 0 $$ と書くことができます。 このような線形計画問題を解くアルゴリズムには、シンプレックス法や内点法があります。Pythonのscipyにはシンプレックス法によるソルバーがあります。以下でscipyによる計算結果を示します。 ...

2019年8月14日

共分散行列

分散 1次元の確率変数 $X$ を $n$ 回サンプルした結果、 $x\in R^{1 \times n}$ が得られたとき、分散の不偏推定量は、 $$ \sigma_x^2 = \frac{1}{n-1} \sum (x_i - \mu_x)^2 $$ です。ただし、 $\mu_x = \frac{1}{n} \sum x_i$ は平均です。 共分散 2つの確率変数 $X$、 $Y$ の組を同時に $n$ 回サンプルした結果、$x, y\in R^{1 \times n}$ が得られたとき、$x$ と $y$ の共分散は、 $$ \sigma_{x,y}^2 = \frac{1}{n-1} \sum (x_i - \mu_x)(y_i - \mu_y) $$ です。ポイントは $(x_i,y_i)$ がペアになっていることと、次元の違う変数の組に対してスカラー値として定義されることです。 共分散行列 $d$ 次元の確率変数 $X$ を $n$ 回サンプルした結果、 $x \in R^{d \times n}$ が得られたとき、 $i$ 行ベクトルを $x_{i,:}$ とすれば、2つの次元の組についての共分散は、 ...

2019年5月6日

希薄化曲線

希薄化曲線(rarefaction curve)は生態学の分野で使われる種数を評価する方法です。 あるサンプルにおいて合計 $N$ 個のアイテムが、$K$ 種類のグループにわかれ、グループ $i \ (i = 1, \cdots K)$ には $N_i$ 個のアイテムが属するとします。このとき、$N$ 個のアイテムから $n$ 個をリサンプリングしたときに観測されるグループの数を $X_n$ として、その期待値がリサンプリング数 $n$ に対する関数である希薄化曲線 $f_n$ として定義されます: $$ f_n := E[X_n] \ . $$ 観測されるグループ数の期待値 $E[X_n]$ は、グループ $i$ のアイテムが観測される確率を $p_i$ とすれば、 $$ E[X_n] = \sum_{i=1}^K p_i $$ となります。さらに $p_i$ は、$N$ 個のアイテムの中から $n$ 個をとる組み合わせのうち、グループ $i$ のアイテムが少なくともひとつ含まれる場合の確率なので $$ p_i = 1 - \frac{\left(\begin{array}{c}N-N_i\\ n \end{array}\right)}{\left(\begin{array}{c}N \\ n \end{array}\right)} $$ と書けます。これらを用いれば $f_n$ は以下のようになります: $$ \begin{eqnarray} f_n =& \sum_{i=1}^K 1 - \frac{\left(\begin{array}{c}N-N_i\\ n \end{array}\right)}{\left(\begin{array}{c}N \\ n \end{array}\right)} \nonumber \\ = &K - \left(\begin{array}{c}N \\ n \end{array}\right)^{-1} \sum_{i=1}^K \left(\begin{array}{c}N-N_i\\ n \end{array}\right) \ . \nonumber \end{eqnarray} $$ 参考文献 Rarefaction (ecology) (13:22, 27 July 2017 UTC) In Wikipedia: The Free Encyclopedia.

2019年3月31日

定数係数の2階線形常微分方程式

定数係数の2階線形常微分方程式 \begin{equation}\label{eq:ode} y'' + ay' + by = f(x) \end{equation} は工学的な応用においてしばしば登場します。$f(x)=0$ のとき同次、そうでないときを非同次と呼びます。 線形の常微分方程式の特徴は、次の重ね合わせの原理が成り立つことです。 **重ね合わせの原理** $$ \begin{cases} y_1'' + ay_1' + by_1 = f_1(x)\\ y_2'' + ay_2' + by_2 = f_2(x) \end{cases} $$ のとき、$y(x):=c_1 y_1(x)+ c_2 y_2(x)$ は、すべての $c_1,c_2\in R$ に対して、 $y’’ + ay’ + by = c_1 f_1(x) + c_2 f_2(x)$ の解です。これは、 以下の計算から簡単に分かります。 $$ \begin{aligned} y'' + ay' + by & = c_1 (y_1'' + ay_1' + by_1) + c_2 (y_2'' + ay_2' + by_2) \\ & = c_1 f_1(x) + c_2 f_2(x) \end{aligned} $$ (\ref{eq:ode}) の一般解 $y(x)$ は、重ね合わせの原理から、そのひとつの特殊解 $y_p(x)$ と同次形の一般解 $y_h(x)$ を用いて以下のように表せます : ...

2018年12月31日

scipyの使いはじめ方

scipyは他の多くのパッケージと違い、scipyに様々な関数やクラスがモジュールとして含まれているのではなくて、scipyの下に様々なサブパッケージが含まれていて、必要なサブパッケージをimportして使います。 numpyでの線形代数の演算は (下の例は固有値、固有ベクトルの計算)、次のようにnumpyをimportすれば行えますが、 $ python >>> import numpy as np >>> A = np.array([[1, 2], [3, 4]]) >>> np.linalg.eig(A) (array([-0.37228132, 5.37228132]), array([[-0.82456484, -0.41597356], [ 0.56576746, -0.90937671]])) scipyでは、線形代数用のサブパッケージlinalgを個別にimportしなくてはいけません。 >>> from scipy import linalg >>> linalg(A) (array([-0.37228132+0.j, 5.37228132+0.j]), array([[-0.82456484, -0.41597356], [ 0.56576746, -0.90937671]])) scipyをimportしてやろうとするとどうなるかというと、以下のようにエラーになります。(一度linalgをimportしてからであればエラーにはなりません。) $ python >>> import numpy as np >>> import scipy as sp >>> A = np.array([[1, 2], [3, 4]]) >>> sp.linalg.eig(A) Traceback (most recent call last): File "<stdin>", line 1, in <module> Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: module 'scipy' has no attribute 'linalg' >>> from scipy import linalg >>> sp.linalg.eig(A) (array([-0.37228132+0.j, 5.37228132+0.j]), array([[-0.82456484, -0.41597356], [ 0.56576746, -0.90937671]])) このような設計になっているのは、scipyが多くの機能を含んでいて、毎回すべてをimportするのは無駄だからのようです(参考)。

2018年12月25日