omohayui blog

おも‐はゆ・い【面映ゆい】[形][文]おもはゆ・し[ク]《顔を合わせるとまばゆく感じられる意》きまりが悪い。てれくさい。

無痛分娩の体験談

はじめに

昨年の10月に男の子を無痛分娩で出産しました。
これから出産を控えていて出産方法を検討している方に少しでも参考になるといいなということで、私の実際の体験をレポートしたいと思います。

無痛分娩について

無痛分娩はまだ日本ではあまり一般的ではないですが、海外では無痛分娩の方が一般的な国も多く、
アメリカ人の友人は日本で奥さんが出産した際に予定日より早く生まれた為、予約していた無痛分娩が普通分娩になってしまったことをアメリカではありえないと言ってました。
麻酔の安全性や費用のことなど色々考えることもあったのですが、体への負担は少ないほうが良いだろうということで無痛分娩を採用している産院を探しました。

産院について

私が住んでいるのは東京ですが、自宅から通える範囲で365日無痛分娩を対応している病院は見つからなかった為、里帰り出産で千葉県にある鎌ヶ谷バースクリニックを選びました。
総合病院を除く産院では日本一の分娩件数を誇ると先生は言っていましたが、24時間365日の体制で無痛分娩を提供しており実績のあるクリニックです。

自然陣痛と計画無痛分娩

無痛分娩について調べていたときは、計画分娩の病院が多い印象でした。
計画分娩の場合は、あらかじめ分娩する日を決めておいて、その日に陣痛促進剤を使って陣痛を起こし、人工的にお産を始めます。
おそらく無痛分娩を決まったスケジュールでしか対応していない産院ではすべて計画分娩なのだと思うのですが、こちらの産院では24時間365日の体制で対応できるので自然陣痛のタイミングでお願いすることにしました。
なるべく陣痛促進剤は使わない自然分娩の形がいいなと思ったからです。ただ、予定日を過ぎてもなかなか生まれなかったり、胎児が大きくなりすぎたときは計画分娩でお願いすることにしました。

当日の流れ

予定日よりも5日早く陣痛がくる。
早朝4時頃お腹が痛くて目が覚める。産院に電話するともう少し陣痛の感覚が短く強くなってから来てくださいと言われる。
   ↓
朝6時頃、我慢できないぐらい痛いので産院に向かう。
   ↓
病院到着後、背中から麻酔を入れてもらうため先生を待つ。
この時点で既にめちゃくちゃ痛いので声が出る。しかし助産師さんにはまだ弱い陣痛なので力まないで深呼吸しろと怒られる。
   ↓
一時間ぐらい経過して先生に麻酔を入れてもらう。しかしまだ痛い。
   ↓
追加の麻酔を入れてもらってからは楽になる。
   ↓
9時半頃、陣痛室のベッドに寝かせてもらう。朝買ってきたコンビニのおにぎりを食べる。
この時点で下半身の感覚がない。排尿もできないので定期的に助産師さんに尿道カテーテルで取ってもらう。
   ↓
12時頃、美味しそうな食事が運ばれてきて食欲はないのに半分以上食べてしまう。

   ↓
定期的に助産師さんが子宮口の開きと下がり具合を確認しにきてくれるが、まだまだなので陣痛促進剤を入れてもらう。
   ↓
18時頃、また美味しそうな食事が運ばれてきて食欲はないのに半分以上食べてしまう。
分娩は明日になりそうと言われる。しかも今日は出産ラッシュで先生も助産師さんも死ぬほど忙しそう。
   ↓
麻酔が切れてくるとめちゃくちゃ痛くて麻酔を追加してもらう。
   ↓
麻酔追加後、気持ち悪くて胃の中ものを全て戻す。ベッドの上から下まで大変なことに。
助産師さんたちの仕事を増やして申し訳ない。
   ↓
夜はあまり眠れないまま朝へ。
   ↓
翌日の9時頃、分娩室へ。助産師さんの掛け声に合わせていきむものの中々赤ちゃんは出てこない。
頭が少し出てきたところで止まってしまい、このままでは良くないということで吸引分娩へ。
   ↓
出産ラッシュの為、当直の先生を呼ぶものの中々来ない。焦る。
   ↓
先生がやっときて吸引分娩で無事出産。
赤ちゃんを抱いて記念撮影してくれる。
   ↓
赤ちゃんと別れて個室の病室へ。麻酔がまだ効いてるため痛みはないが歩けない。
   ↓
赤ちゃんの酸素濃度が低めだったので念の為、呼吸器に入っていると聞かされる。分娩がスムーズにいかなかったせいかとちょっと心配になる。
   ↓
午後、歩けるようにはなるが尿意が全く感じられず、立ち上がる度に尿漏れを起こす。
また座ると股間とお尻が痛いのでドーナツ型クッションが必須。
   ↓
翌日から同室指導

陣痛について

無痛分娩と言いますが、たしかに分娩のタイミングでは無痛です。
ただ陣痛が始まってから最後まで無痛かと言うと、もちろん麻酔が入るまでは痛いし私のように効きが悪いと麻酔が弱くなったタイミングでも痛いです。
とはいえ最も大変な分娩時に痛くないのは大きいですし、今回のように陣痛が始まってから24時間以上かかる場合、麻酔無しで耐えられるとは到底思えません。(それに耐えている世のお母さま方々には尊敬の念を抱いております)

考えるところ

メリットは先程書いたように長時間の陣痛にも耐えられることです。麻酔が効いているので食事を楽しむ余裕さえありました。
ただ出産前に読んだ無痛分娩の方が回復が早いという記事には少し疑問があります。
陣痛が抑えられている分、分娩までの時間が長くなる傾向があるみたいです。
そして私の場合、分娩自体にも時間がかかってしまい、幸い赤ちゃんには何も問題はなかったのですが、会陰切開後の傷の回復、尿漏れの解消まで3,4週間かかりました。
とはいえ、また無痛分娩を選ぶかと言われたら(次はないと思うけど)間違いなく選ぶと思います。
あと鎌ヶ谷バースクリニックの助産師さんたちは本当に親切で素晴らしい方々でした。

(おまけ)用意してよかったもの

  • 骨盤ベルト(産後すぐに巻きました、病院に持っていくべき)
  • ストロー(水分補給が大事、ベッドで横になったまま飲めないと難しい)
  • 大人用オムツ(尿漏れが本当に酷かったので、産褥ナプキンより吸水性が高い)

出産までにやることリスト

これは何か

友人や先輩ママの話を聞いていると、子どもが生まれてくるまでにやれることやっといた方がいいよってよく言われる。
ということで、9月から産休にも入るし、とりあえずTODOリストを作成してみた。

出産までにやること(やりたいこと)リスト

  • 勉強系
    • [x] TOEIC受験(10/2)
    • イタリア語検定の準備
    • [x] 積んでる本読む
    • [x] 2つ以上分析コンペ参加
    • [x] AtCoderはじめる
    • Google Assistant App (Actions) を Dialogflow に移行
    • 学生時代に作ったWebサイトを作り直す
  • お出かけ系
    • 日帰り旅行
    • カワウソカフェに行く
    • [x] 新たなラーメン屋を探す
  • 出産準備系
    • [x] 保育園の見学に行く
    • 保育園候補決める
    • [x] 母親学級に行く
    • [x] 安産祈願に行く
    • [x] 子どもの名前考える
    • マイベビーリストのアイテムを揃える
  • 掃除系
    • [x] 窓の掃除
    • [x] ベランダの掃除
    • [x] 各所の換気扇の掃除

心意気

まずはベイビーが無事に生まれてくることが第一なので、無理せずやってこうと思う。
最近はとにかく胎動が激しいので、早く生まれたがってる気がしてならない。
焦らずじっくりと出てきておくれ。。。

分析コンペに初参加した話

なぜ参加したのか?

GTUGGirlsスタッフ繋がりの友人3人で「Kaggleとデータサイエンスを勉強する会」を随分前から週一で行っているが、輪読会がメインで試しにトレーニングコンペをやってみるぐらいで一度もコンペに参加したことがなく、そろそろ何かにサブミットしたいということで参加してみた。

どんなコンペに参加したのか?

チームで参加すると言っても我々は素人なので、ハードルの低そうな Nishika の「生鮮野菜の価格予測」というコンペに参加した。
ハードルが低そうと言っても、ちゃんと賞金とメダル・スコア付与ありのコンペだ。

大田市場で取引された各生鮮野菜の日次の卸売価格、取引量、産地などのトレーニングデータと全国各地の気象データから、2022年5月の各野菜の卸売価格を予想するというものだ。

データから色々推測する

  • トレインデータに入っている野菜は44種類ほどだが、テストデータに入ってるのは16種類だけ
    • 最終的に予測が必要な16種類だけに絞ってモデルを作るべきか?他の野菜も考慮して作るべきか?
  • 野菜の種類によって季節ごとに価格が変動するもの、あまり変動しないものがあり、差がかなり大きい
    • 野菜ごとにモデルを作った方が良さそう
  • 取引が極端に少ない日がある
    • 大田市場は水曜が休みのことが多いらしい、休場日カレンダーのデータを使った方が良さそう
  • 各野菜の年次の卸売価格を比較すると、年ごとに大きく異る
    • 毎年の5月のデータを重視するよりも、直近のデータを重視した方が良さそう

データの前処理

  • このコンペは初心者向けにチュートリアルのNotebookが用意されていたので、それをベースに進めていった
    • チュートリアルと大きく違うところは月次でデータをまとめてしまっているところを日次で処理していったところ
  • トレインデータと気象データのエリア名が異なるのでマッピングを作成してエリア名を統一する
    • 「各地」となっているところは全国の平均気象データを作って補完

学習・推論

  • 過去の値をラグ特徴量として扱ったが、年単位のデータは振り幅が大きい、季節を考慮すると半年前のデータなどは返ってノイズになるということで、1,2,3,12ヶ月前の日次データを特徴量にすることにした
    • ただ、このやり方だと特定の野菜の xヶ月前の取引が丁度存在しないというケースは発生するので、その場合はその xヶ月前の前後1週間のデータの平均で補完した
  • 学習には安定と実績のLightGBMを使った
  • バリデーションはHold-out法を使った

コンペの結果は?

全然準備する時間が足りなくて1人1回ずつのサブミットになってしまったが、自分のサブミットしたファイルが最終スコア 15.703526 (55位/299) という初めてにしてはまずまずの結果を出したので良かった。一応メダルも貰えるらしい。

今後は?

勉強会は今後も続けて行くことになっていて、次回は中古マンションの価格予想というコンペに参加しようと計画している。
分析ド素人の私が(普段はGoでAPIとか、Elasticsearchで検索インフラのメンテしてる)ここまでモチベーションを保てているのはひとえに一緒に勉強会をしてくれている友人たちのおかげである。本当に感謝。

▼勉強会で扱った書籍

protobuf v2 で protocmp.IgnoreFields() 使う

はじめに

これは完全に自分用の備忘録です。
もしも同じところで引っかかった方がいて参考になる場合は別ですが、特に読んでいただくほどのものではないです。 あしからず!

Go protobuf API v1 と v2

blog.golang.org

The github.com/golang/protobuf module is APIv1.
The google.golang.org/protobuf module is APIv2.

こちらの記事にあるように、github.com/golang/protobuf が v1, google.golang.org/protobuf が v2 です。
そして、proto.Message インターフェイスを変換して、2つのインターフェイス間の移行を容易にする関数が用意されてるとありますが、
つまり下位互換性はないということです。

protobuf の Diff で cmpopts.IgnoreFields() を使う

テストの中で cmp.Diff で struct 同士の Diff を取ることはよくあると思うのですが、protobuf 同士でもこれを使うことがあります。
そして、 cmp.Diff で特定の field の diff を無視したいときに使うのが、 cmpopts.IgnoreFields() ですが、
これは v1 では ignore されるのですが、v2 に移行するときに必要になる protocmp.Transform() と合わせて使おうとすると、ignore されません。

// protobuf v1
if diff := cmp.Diff(want, resp,
    cmpopts.IgnoreFields(todopb.Task{}, "Created", "Updated"),
); diff != "" {
    t.Errorf("differs: (+got -want)\n%s", diff)
}

そこで、v2 では、 cmpopts.IgnoreFields() を使う必要があります。

// protobuf v2
if diff := cmp.Diff(want, resp,
    protocmp.IgnoreFields(proto.MessageV2(&todopb.Task{}), "created", "updated"),
    protocmp.Transform(),
); diff != "" {
    t.Errorf("differs: (+got -want)\n%s", diff)
}

protocmp.Transform() を付けなくてはいけないという認識はあったのですが、ここを書き換えることに気づかず、なんで ignore されないんだろうなって考えてました。

以上、備忘録です。

Dialogflow CX Competition に応募してみた

はじめに

そもそも Dialogflow CX って何?という方がこれを読んでくれているかもしれないので、ざっくりと説明すると、2020年に Google Cloud がリリースしたチャットボットやテレフォニーエージェント(代理で電話応答してくれるボット)を構築するためのボット構築プラットフォームのことです。
従来の Google アシスタントアプリの作成や簡単なチャットボット作成に利用されていた Dialogflowは、Dialogflow ES(Essentialsの略)にブランド化されていますが、CX は大規模だったり、複雑な仮想エージェントに適していて、エンタープライズレベルのプロジェクト用に進化しています。
...という訳で CX はお値段もエンタープライズ向けだったので、正直私もドキュメントを読んだりしていても GCP のコストが気になって気軽に触ったことがありませんでした。

Dialogflow CX Competition とは?

Dialogflow CX Competition (global) は、Google 公式が開催している Dialogflow CX を使ったコンペです。

f:id:omohayui:20210808171049p:plain

このコンペには2種類の応募方法があります。

  • UX Designers - Write a conversation flow
    • UXデザイナー向けの種目で、COVID-19 に関連するテキストチャットボットの会話フローを設計します。(例:ワクチン接種のスケジューラー、FAQ、旅行先での許可に関するボット)
  • Bot Developers - Build an integration
    • チャットボット開発者向けの種目で、Dialogflow CX API を使用して、チャットボットの統合環境を構築します。(例:ウェブサイト、ブログ、WhatsApp、CRMCMS、モバイルなどにチャットボットを組み込む)

特典その1:無料のトレーニン

私がまず応募してみようと思った理由は、無料の Dialogflow CX トレーニングを受けられるというところです。 とりあえず参加申請すると数日後に Qwiklabs のオンライントレーニングへの招待メールがきます。
Qwiklabs で受けることができるのは2つのコードラボなのですが、ここで実際に動かせる Dialogflow CX の環境はシュミレーターなどではなく、トレーニング用に発行された GCPアカウントで実際に Cloud Console にログインして Dialogflow CX の開発をすることができます。
ひとつ注意点なのは、「Start Lab」ボタンを押したら1時間半以内にそのコードラボを終わらせないといけないということです。時間になったら、トレーニング用のアカウントから強制ログアウトされて、一度作ったチャットボットは二度と触れません。もう一度「Start Lab」することはできますが、新しいアカウントになるので最初からチャットボットを作り直しになります...
なので、「Start Lab」ボタン押す前にコードラボの内容を一通り読んでおくことをおすすめします。私は英語読むの遅いので先に読んでないと間違いなく間に合わなかったと思います。
あと、ditectintent のURL設定するところがコードラボの説明だと間違っている気がしました。(Feedbackに書いておいたけれど)

特典その2:Dialogflow CX Tシャツ

これは受賞者に貰えるとかではなくて、プロポーサルを提出した先着200名に無料配布してくれるという特典です。
プロポーサルの期限は 8/9 なのですが、(日本時間ならまだ間に合うので皆さん急いでとりあえず応募してみましょう!)先日、提出した私のプロポーサルでも先着200名に入っていたらしく、Tシャツをオーダーすることができました。
男性・女性用、サイズも自分で選べました。

特典その3:受賞者には豪華賞品

UXデザイナー向け、チャットボット開発者向け受賞者それぞれ、1位から3位までの方々には Fitbit Sense や Nest Hub, Lego Kit などの賞品がついてきます。私は受賞は狙っていませんが、StarWarsLego Kit は欲しいな...って少し思いました。はい。
あと、「The Definite Guide to Conversational AI with Dialogflow and Google Cloud」という本もついてくるそうです。
(これ、Amazon で調べたら 6000円以上するのね...)

これからのタイムライン

8/9 から応募されたプロポーサルの審査が始まり、Best idea として50のプロポーサルがノミネートされます。
ノミネートされた人は、実際に会話フローの構築やチャットボットの統合環境を作って 8/31 までにソースコードを提出します。
コントリビューターは全員、Googleから SNS や Dialogflow の Webサイトを通じて紹介されるらしいです。
自分のプロポーサルがノミネートされるされないに関わらず、ノミネートされたコードがオープンソースとして見れるというのはうれしいですね。
そして、最終的な受賞者の発表は 9/13 です。

万が一、私のプロポーサルが50のノミネートに入ったら、また続きを書きたいと思います。ではでは。