あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

2017年08月

7/31付けで、新卒から8年勤めた会社を退職しました。
その顛末などは別の機会に書くとして、今回は退職金と年金のお話を。

恥ずかしながら、今日の今日まで、退職金と年金についてほとんど何も理解していませんでした。
「まあ、明細がくるはずだから、それを見ればいいだろ」くらいに考えていたのです。
ところが、退職金・年金といっても色々な種類があるらしく、各所から五月雨で案内が来て困ってしまいました。
ちゃんと整理しないと、手続きの不備や貰い損ねが発生しかねないぞ、と。

そこで、本記事では、退職金と年金について整理します。
ググればいくらでも情報が出てきますが、一般的なメーカーを中途退職(してすぐに転職)したケースに限定して記載するので、同様の境遇の方にとっては参考になるのではないかと思います。

○年金・退職金の積み上げモデル
年金・退職金は一種類ではなく、国民全員が加入する(もらえる)基本的なものから、一部の人が加入する特殊なものまで、様々な種類があります。
それらを積み上げていくイメージで理解すると分かりやすいです。
年金・退職金の主な種類は以下の通り。

・国民年金
国民全員が加入する年金。転職先でも強制加入なので、気にすることは特に無いです。

・厚生年金
会社員が加入する年金。これも会社員なら強制加入なので、気にすることは無いです。

・企業年金
国民年金と厚生年金に加えて企業が独自に設ける年金。
企業独自の年金のため、退職後どうするかを選択して手続きをする必要があります。
主な選択肢は「一括でもらう(退職時に一時金として)」、「移管する」の2つ。
企業年金には主に確定給付年金と確定拠出年金があり(説明省略)、基本的には確定給付年金は「一括でもらう」、確定拠出年金は「移管する」ことになります。
年金・退職金で最も分かりにくいのが、確定給付年金を一括でもらう場合に、『年金として積み立てていたお金を退職金として、(後述する)退職一時金とは別に受け取る』ことになるという点だと思います。

・退職一時金
いわゆる退職金と言うとコレを指すことが多いのだと思います。
しかし、前述したように、退職一時金とは別に、確定給付年金として積み立てていたお金も退職時に受け取ることになります。

○結局どういう手続きをして、何が貰えんの?
退職手続きを普通にこなせば退職一時金を貰えます。
確定給付年金に関する手続きも基本的には退職手続きに含まれており、普通にこなせば退職金としてもらえるはずです(「一括でもらう」を選択した場合)。

以上です。

pix2pixではU-Netと呼ばれるネットワークを使用しています。
本記事では、下記サイトのchainer-pix2pixを参照しながら、chainerによるU-Netの実装方法を解説します。
https://github.com/pfnet-research/chainer-pix2pix

U-Netの概要については、下記論文の図1を参照してください。
U字ネットワークの左側の各層の出力を右側の各層の入力に連結するのが特徴です。
https://arxiv.org/abs/1505.04597

chainer-pix2pixからU-Netの実装を引用します。
class Encoder(chainer.Chain):
def __init__(self, in_ch):
layers = {}
w = chainer.initializers.Normal(0.02)
layers['c0'] = L.Convolution2D(in_ch, 64, 3, 1, 1, initialW=w)
layers['c1'] = CBR(64, 128, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
layers['c2'] = CBR(128, 256, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
layers['c3'] = CBR(256, 512, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
layers['c4'] = CBR(512, 512, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
layers['c5'] = CBR(512, 512, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
layers['c6'] = CBR(512, 512, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
layers['c7'] = CBR(512, 512, bn=True, sample='down', activation=F.leaky_relu, dropout=False)
super(Encoder, self).__init__(**layers)

def __call__(self, x):
hs = [F.leaky_relu(self.c0(x))]
for i in range(1,8):
hs.append(self['c%d'%i](hs[i-1]))
return hs

class Decoder(chainer.Chain):
def __init__(self, out_ch):
layers = {}
w = chainer.initializers.Normal(0.02)
layers['c0'] = CBR(512, 512, bn=True, sample='up', activation=F.relu, dropout=True)
layers['c1'] = CBR(1024, 512, bn=True, sample='up', activation=F.relu, dropout=True)
layers['c2'] = CBR(1024, 512, bn=True, sample='up', activation=F.relu, dropout=True)
layers['c3'] = CBR(1024, 512, bn=True, sample='up', activation=F.relu, dropout=False)
layers['c4'] = CBR(1024, 256, bn=True, sample='up', activation=F.relu, dropout=False)
layers['c5'] = CBR(512, 128, bn=True, sample='up', activation=F.relu, dropout=False)
layers['c6'] = CBR(256, 64, bn=True, sample='up', activation=F.relu, dropout=False)
layers['c7'] = L.Convolution2D(128, out_ch, 3, 1, 1, initialW=w)
super(Decoder, self).__init__(**layers)

def __call__(self, hs):
h = self.c0(hs[-1])
for i in range(1,8):
h = F.concat([h, hs[-i-1]])
if i<7:
h = self['c%d'%i](h)
else:
h = self.c7(h)
return h
EncoderとDecoderの2つ合わせてU-Netです。
Encoderの出力をDecoderに入力することでU字ネットワークを実現します。

特徴的なのは、Decoder.__call__()内で使用されているconcatという関数です。
これはVariable変数を結合する関数であり、これを用いてEncoder(U字左側)の各層の出力をDecoder(U字右側)の各層の入力に連結しています。

concat関数は連結する次元を引数axisで指定でき、デフォルト値は(0ではなく)1です。
Variable変数は(データ数, チャンネル数, 縦, 横)の4次元であるため、上記コードのようにaxisが指定されていない場合、axis=1つまり新しいチャンネルとしてEncoderの各層の出力を連結することになります。

以上がchainerでU-Netを実現する方法です。

・Abstract
深いネットワークをうまく訓練するには、数千もの注釈付きのトレーニングサンプルが必要であるという大きな同意があります。
本稿では、利用可能な注釈付きサンプルをより効率的に使用するために、データ増強の強力な使用に依存するネットワークおよびトレーニング戦略を提示します。
このアーキテクチャは、コンテキストを取得するための縮小パスと、正確なローカライゼーションを可能にする対称拡張パスで構成されています。
このようなネットワークは、非常に少数の画像からエンドツーエンドで訓練することができ、電子顕微鏡スタックにおけるニューロン構造のセグメンテーションのためのISBIチャレンジに関する従来の最良の方法(スライディングウィンドウ畳み込みネットワーク)を凌駕することを示す。
透過光顕微鏡画像(位相コントラストおよびDIC)で訓練された同じネットワークを使用して、我々はこれらのカテゴリーでISBI細胞追跡挑戦2015を大きなマージンで獲得した。
さらに、ネットワークは高速です。
最近のGPUでは、512x512イメージのセグメンテーションに1秒もかかりません。
完全な実装(Caffeに基づく)と訓練されたネットワークは、Webサイトで入手できます。

1. Introduction
過去2年間で、深い畳み込みネットワークは、多くの視覚認識タスク、例えば [7,3]において良い結果を残してきた。
畳み込みネットワークはすでに長い間存在していたが[8]、利用可能な訓練セットのサイズと考えられるネットワークのサイズのために、その成功は限られていた。
Krizhevskyらによる画期的な発見 [7]は、ImageNetデータセット上の8つの層と数百万のパラメータを持つ大規模なネットワークの監督訓練のために、100万のトレーニング画像を使用していました。
それ以来、さらに大きくて深いネットワークも訓練されてきた[12]。

畳み込みネットワークの一般的な使用方法は、イメージへの出力が単一クラスのラベルである分類タスクです。
しかしながら、多くのビジュアルタスク、特に生物医学的画像処理では、所望の出力は、ローカライゼーションを含むべきであり、すなわち、クラスラベルが各ピクセルに割り当てられると想定される。
さらに、何千ものトレーニング画像は、通常、生物医学的作業の範囲を超えています。
したがって、Ciresanら[1]は、スライディングウインドウ設定でネットワークを訓練して、そのピクセルの周りの局所領域(パッチ)を入力として提供することによって、各ピクセルのクラスラベルを予測する。
まず、このネットワークをローカライズできます。
第2に、パッチに関するトレーニングデータは、トレーニング画像の数よりもはるかに多い。
結果として得られたネットワークは、ISBI 2012でのEMセグメンテーションチャレンジを大幅に上回りました。

明らかに、Ciresanら[1]には2つの欠点がある。
まず、各パッチごとにネットワークを個別に実行する必要があり、パッチが重複するために冗長性が高いため、非常に遅いです。
第二に、ローカリゼーションの正確さと文脈の使用との間にはトレードオフがあります。
パッチを大きくすると、ローカライゼーションの精度を低下させるmax-poolingレイヤーが多く必要になりますが、小さなパッチではネットワークにはほとんどコンテキストが見えなくなります。
より最近のアプローチ[11,4]は、複数の層からのフィーチャを考慮に入れたクラス出力を提案した。
同時に、良いローカリゼーションと文脈の使用が可能です。

この論文では、より洗練されたアーキテクチャ、いわゆる "完全畳み込みネットワーク" [9]を構築する。
我々は、このアーキテクチャを修正して拡張し、非常に少数のトレーニングイメージで動作し、より正確なセグメンテーションを生成します。
図1を参照してください。
[9]の主なアイデアは、プールオペレータがアップサンプリング演算子で置き換えられている連続するレイヤーによって通常の契約ネットワークを補うことです。
したがって、これらの層は出力の分解能を高める。
ローカライズするために、収縮経路からの高分解能フィーチャが、アップサンプリングされた出力と組み合わされる。
連続した畳み込みレイヤーは、この情報に基づいてより正確な出力を組み立てることを学ぶことができます。

我々のアーキテクチャにおける1つの重要な変更点は、アップサンプリング部分において、ネットワークが文脈情報をより高い解像度の層に伝搬させることを可能にする多数の特徴チャネルも有することである。
結果として、拡張パスは、収縮パスに多かれ少なかれ対称であり、U字型アーキテクチャをもたらす。
ネットワークは、完全に接続されたレイヤを持たず、各畳み込みの有効部分のみを使用する。
すなわち、セグメンテーションマップは、入力画像において完全なコンテキストが利用可能なピクセルのみを含む。
この戦略は、オーバーラップタイル戦略(図2参照)によって任意に大きな画像をシームレスに分割することを可能にします。
画像の境界領域内のピクセルを予測するために、欠落しているコンテキストは、入力画像をミラーリングすることによって外挿される。
このタイリング戦略は、大きな画像にネットワークを適用する場合に重要です。
そうしないと、解像度はGPUメモリによって制限されるためです。
我々のタスクに関しては、利用可能な訓練データはほとんどなく、利用可能な訓練画像に弾性変形を適用することによって過剰なデータ増大を使用する。
これにより、ネットワークは、注釈付き画像コーパスにおけるこれらの変換を見る必要なく、そのような変形に対する不変性を学習することが可能になる。
これは、生物医学的セグメンテーションにおいて特に重要である。
なぜなら、組織および現実的な変形における最も一般的な変化である変形が効率的にシミュレートされ得るからである。
学習不変性のためのデータ増大の値は、Dosovitskiy et al。 [2]教師なし特徴の学習の範囲で。
多くのセルセグメンテーションタスクのもう1つの課題は、同じクラスのオブジェクトに触れることです。
この目的のために、我々は、接触するセル間の分離背景ラベルが損失関数において大きな重みを得る重み付き損失の使用を提案する。
得られたネットワークは、様々な生物医学的セグメンテーション問題に適用可能である。
この論文では、我々がCiresan et al。のネットワークを上回っているEMスタック(ISBI 2012で開始された進行中の競技会)におけるニューロン構造のセグメント化に関する結果を示す。 [1]。
さらに、ISBIセルトラッキングチャレンジ2015の光学顕微鏡画像でのセルセグメンテーションの結果を示します。
ここでは、2つの最も難しい2D透過光データセットに大きなマージンを得ました。

・Abstract
私たちは、条件付き敵対ネットワークを、イメージ - イメージ変換問題の汎用ソリューションとして研究します。
これらのネットワークは、入力画像から出力画像へのマッピングを学習するだけでなく、このマッピングを訓練するための損失関数を学習する。
これにより、伝統的に非常に異なる損失処方を必要とする問題に同じ一般的なアプローチを適用することが可能になる。
このアプローチがラベルマップから写真を合成し、エッジマップからオブジェクトを再構成し、画像を色づけるのに効果的であることを実証します。
この結果は、私たちがもはや損失関数を手作業で作ることなく、リーズナブルな結果を達成できることを示唆しています。

画像処理、CG、およびCVにおける多くの問題は、入力画像を対応する出力画像に「翻訳」することととらえることができる。
概念が英語またはフランス語で表現されるように、シーンはRGB画像、勾配場、エッジマップ、セマンティックラベルマップなどとしてレンダリングされます。
自動言語変換と同様に、十分な訓練データ(図1参照)があれば、シーンの可能性のある表現を別の表現に変換するという問題として、画像間変換を定義することができます。
言語の翻訳が難しい理由の1つは、言語間のマッピングが一対一であることはめったにないためです。
いずれの概念も、ある言語では他の言語よりも表現しやすいからです。
同様に、ほとんどのイメージからイメージへの変換の問題は、多対1(CV。写真をエッジ、セグメント、セメンティックラベルに変換する)か、または一対多(CG。マッピングラベルやスパースな入力を写実的な画像に変換する)である。
伝統的に、これらのタスクの各々は、別個の専用機械(例えば、[7,15,11,1,3,37,21,26,9,42,46])で取り組まれてきたが、ピクセルからピクセルへの変換という設定は全て同じです。
本稿の目標は、これらの問題の共通の枠組みを構築することです。

コミュニティはすでに、この方向で重要なステップを踏んでおり、CNN(畳み込みニューラルネット)がさまざまな画像予測問題の背後にある一般的な機能になっています。
CNNは、結果の質を評価する目的である損失関数を最小限に抑えることを学びます。
学習プロセスは自動ですが、効果的な損失の設計には多くの手作業が必要です。
言い換えれば、私たちはまだCNNに最小限に抑えたいものを伝える必要があります。
しかし、Midasのように、私たちは欲しいものを慎重に選ばなければなりません。
素朴なアプローチをとって、予測された真のピクセルと真の真のピクセルとの間のユークリッド距離を最小にするようにCNNに依頼すると、ぼやけた結果が生じる傾向があります[29、46]。
これは、すべてのもっともらしい出力を平均化することによってユークリッド距離が最小化され、ぼやけが生じるからです。
CNNに、実際に鮮明で現実的な画像を出力するなど、実際に欲しいことを強制的に行う損失関数を与えるのは未解決の問題であり、一般的に専門家の知識が必要です。

本稿では、条件付き設定でGANを探索する。
GANがデータの生成モデルを学ぶのと同様に、条件付GAN(cGAN)は条件付き生成モデルを学習する[14]。
これにより、cGANは、イメージからイメージへの変換タスクに適しています。
ここでは、入力イメージを処理し、対応する出力イメージを生成します。
GANは過去2年間に精力的に研究されており、本書で探求している多くの手法はこれまでに提案されています。
それにもかかわらず、以前の論文は特定のアプリケーションに焦点を当ててきましたが、画像 - 条件付きGANが画像 - 画像変換の汎用ソリューションとしてどのくらい有効であるかは不明です。
私たちの主な貢献は、さまざまな問題について、条件付きGANがリーズナブルな結果を生むことを実証することです。
我々の第二の貢献は、良い結果を達成するのに十分な単純なフレームワークを提示し、いくつかの重要な設計上の選択の効果を分析することです。

1. Related work
Structured losses for image modeling
画像から画像への変換の問題は、多くの場合、ピクセルごとの分類または回帰として定式化される[26,42,17,23,46]。
これらの形式は、各出力ピクセルが入力画像の他のすべてのピクセルに対して条件付きで独立していると見なされるという意味で、出力空間を非構造的であるとして扱います。
条件付きGANは、代わりに構造化された損失を学習します。
構造化された損失は、出力の結合構成にペナルティを与える。
条件付きランダムフィールド[2]、SSIMメトリック[40]、特徴マッチング[6]、ノンパラメトリックロス[24]、畳み込み擬似事前[41]、および一致する共分散統計値に基づく損失[19]などの多くの文献は同様の条件付き損失を持つ。
私たちの条件付きGANは、損失が学習され、理論上、出力とターゲットの間で異なる可能性のある構造にペナルティを課すことができる点で異なります。

Conditional GANs
私たちがGANに条件付き設定を最初に適用したわけではありません。
以前に、離散ラベル[28]、テキスト[32]、画像において条件付きGANが研究されました。
画像条件付きモデルはインペインティング[29]、ノーマルマップ[39]からの画像予測、ユーザ制約[49]、将来フレーム予測[27]、将来状態予測[48]、プロダクト写真生成[43]、スタイル転送[25]に取り組んできました。
これらのメソッドのそれぞれは、特定のアプリケーションに合わせて調整されました。
私たちのフレームワークは、アプリケーション固有のものがないという点で異なります。
これにより、セットアップは他のほとんどのものよりもかなり簡単になります。
我々の方法はまた、これらの先行研究とは、発生器および弁別器のいくつかのアーキテクチャ上の選択肢が異なる。
過去の研究とは異なり、我々のジェネレータでは、U-Netベースのアーキテクチャ[34]を使用し、我々の識別器には畳み込みの "PatchGAN"分類器を使用し、画像パッチの規模でのみ構造をペナルティする。
同様のPatch-GANアーキテクチャは、ローカルなスタイル統計を捕捉する目的で[25]で以前に提案されました。
ここでは、このアプローチがより広い範囲の問題に効果的であることを示し、パッチサイズの変更の影響を調べます。

2. Method
GANは、ランダムノイズベクトルzから出力画像yへの写像(G:z->y)を学習する生成モデルである[14]。
対照的に、条件付きGANは、観測された画像xとランダム雑音ベクトルzから画像yへの写像(G:{x,z}->y)を学習する。
ジェネレータGは、ジェネレータの「フェイク」を検出する際に可能な限り行うように訓練された対抗訓練された弁別者Dによって「実際の」画像と区別できない出力を生成するように訓練される。
このトレーニング手順は図2に示されています。

↑このページのトップヘ