Month: 10 月 2018

莫莫两岁半

两岁半了,国庆后去社区医院体检,身高还是在 30 分位的样子,体重转好到 30 分位,头围基本没变,这个倒有 70 分位。没有贫血缺钙,骨密度都偏高,暂时看不用太过担心补钙什么的问题

到医院还是各种不乐意,量身高体重都是爸爸伯伯加医生一起三个人按住才搞定,抽血也是三个人一人抱住,一人按手腕,医生捏手指。扎了点指尖血,后面一直要包着搞得跟受了多大伤一样,回来一上午都不高兴,中午破例睡了一觉才好

现在习惯了坐餐椅,到吃饭的点会自己踩着茶几爬上去,夏天结束爸爸把客厅的落地扇拿走后茶几靠边了点,现在不好自己爬了也是个问题

还是喜欢看电视,要一边看一边吃,更狠的时候要一边看电视一边给他读书一边吃饭,娃都这么惯的么

晚上睡前不让隔拉拉裤或尿不湿,会说穿起来「痛痛的」,都是等睡着了再隔上,毕竟现在晚上睡着了不会主动说要尿尿。有时候等睡着打算给他换的时候可能已经尿床了,洗床单和垫子的频率有点高,现在天气凉快后睡着后很快能睡比较沉,还是麻溜的换上好

看爸爸用电脑会跑去要看各种动物的图片,看了猎豹抓羚羊的图,在小区玩时会说「我是猎豹,爸爸你是羚羊,我来抓你」,终于可以不那么懒,需要路上一直要抱着

不过路上还是偏懒,各种赖着要抱,自己带滑板车出去都是要大人拖着走,而不是踩着走,到玩的地方了倒是下来折腾的各种起劲

打算白天给溜溜好睡午觉,都还是失败,现在彻底放弃中午弄睡他的念头,还是保持一个他舒服的稳定作息的好,晚上八点半左右进房间喂奶洗漱,平静下来,九点半到十点自己睡着,早上八点半左右叫醒来

晚上睡觉有时候会说「我还睡不着」,明明都困的不行都在各种打哈欠揉眼睛了,就是贪玩,早上被弄醒时会撒娇「我还想睡」,其实也睡差不多了,如果没睡够是不会一戳就醒,而且还会有很大起床气

国庆前带去动物园玩,想带去自己想玩的地方自己多走走,结果一路各种要爸爸和伯伯抱着,这么爱出汗的娃当天衣服一点潮湿的感觉都没有,到底是溜娃还是溜的大人(手动捂脸)

对自己的凉鞋情有独钟,出去总要穿凉鞋,天气刚转凉那会都劝不住,只能藏起来。对自己习惯的东西还是各种舍不得

会各种安排别人来照顾他,尤其睡前安排特别好,洗过澡后在床上让爸爸喂奶,然后「伯伯你去洗澡,妈妈你去洗奶瓶,爸爸陪我睡觉」

能很快从一数到十,不过真的让他数东西了又各种乱搞,也还不太会一个一个点着数

开始在小马桶上拉臭臭,在外面撒尿可以直接裤子往下扒了站着尿草丛去,在家还是大人抱着撒大马桶里,或者拉个小板凳来自己站在马桶旁边撒

各种热烈的表达爱意,每天想起来就会来一句「我爱你」,或者是面对多人时的「我爱你们」,但是如果要自己玩懒得陪你时就会来一句「我不爱你了」(手动笑哭)

还是喜欢折腾人,特别是伯伯和妈妈的长发,会抓的乱七八糟的,伯伯说多了「都被你抓成颠婆」后,还会主动说「我要把你抓成一个颠婆」

对自己的东西还是看的很牢,出去玩不太跟人交换玩具,会强调「这是我的」,真遇上别人有自己特别想玩的才会在劝说下试图跟人换换。平时还是都注意跟他讲要分享,再就是等这个物权欲时期自然过去吧

在家吃到好吃的,不想被爸妈分享或打算独吞时各种理由:「你不可以吃的」「这个有口水」「它脏了」「吃了会肚肚痛」,如果被当面强行吃掉,会发飙「吐出来!」

爸爸把半年多前买的宜家小火车再拿出来玩,现在能玩了就疯狂的痴迷小火车,等爸爸再去淘宝额外补了一些轨道和车后,更是痴迷的不行,早上醒来都会说「给我换衣服,我要玩小火车」

在电视柜前弄了各种假的吃的摆了一排,还会各种热情的拉家长说「你假装吃吧」

更坦然的面对离别,伯伯回家去了几天,提前跟他说好,然后他也能平静的说「伯伯回老家去了,过几天再回来」,不会像以前那样要闹一两天才能缓过来。不过每天早上爸爸去上班想主动告别,多半还是会被留下来「爸爸不要去上班」「爸爸陪我玩」

问想不想要妹妹,现在会说「妈妈你现在就给我生个妹妹吧」,再问你的玩具给妹妹一起玩好不好,立马紧张「这些都是给男孩子玩的,女孩子不可以玩的」,再问那我们把书给妹妹看好不好,还是紧张找借口「这个太复杂了,看不懂的」,笑翻旁人

还是不愿意好好区分兄弟姐妹之间的称呼,会管自己的毛绒兔兔叫姐姐,然后又说自己是她哥哥。先随他吧,现在嘴上逆反特别厉害,跟他说什么都会跟你唱反调

出去菜店买菜,已经会各种自己挑,「我要吃这个」「我们买这个吧」,这样也好,在没有特别挑食的情况下,也懒得大人费劲去安排伙食

刷牙现在大部分时间能自己好好刷,大人再帮忙把各种角落补刷一下,之前都不让数牙齿,体检时跟医生说半年前一样还是 16 颗,后面爸爸仔细看了下应该是有 19 颗,离 20 颗乳牙长齐也快了,并没有特别慢

会很享受蚂蚁爬树的背部按摩,有时候想给他哄睡,说给他捏一捏,小家伙还会要求把手伸衣服里去给他捏,才不要隔着衣服做隔靴搔痒的敷衍

补遗: 机器学习手记系列 3 线性回归样例程序

距离 2012 的两三年后(这篇的草稿时间)又过了两三年,这个补遗看起来也烂尾了 -.-

之前在机器学习手记系列 3: 线性回归和最小二乘法后面留了个问题, 也给了结果, 但是当时说好的程序代码并没给出来, 那个手记系列的坑感觉填不上了, 但是已经刨好的小坑还是填上吧

现在已经有很多深度学习框架和教程来教这个,自己也忘得差不多了,就不班门弄斧裸写。推荐看一下 动手学深度学习 http://zh.gluon.ai/index.html,Deep Learning 领域大神 李沐 等人在维护(我能凑不要脸的蹭热度说下这是前百度同事我们还一起吃饭打牌来着么)。刨的小坑就按 线性回归的从零开始实现 http://zh.gluon.ai/chapter_deep-learning-basics/linear-regression-scratch.html 里的做法来实现

先重复下问题

如下式子里不同的阿拉伯数字只是一个符号, 实际表示的可能是其他数字
967621 = 3
797321 = 1
378581 = 4
422151 = 0
535951 = 1
335771 = 0

根据上述式子, 判断下式等于?
565441 = ?

这题的脑筋急转弯版本答案是看每个数字有几个圈,就代表几,这样 1/2/3/4/5/7 都是 0 个圈,6/9 是 1 个圈,8 是 2 个圈,所以最后 565441 里面只有 6 有 1 个圈,答案为 1

按 gluon 上的教程我们也来走一遍,装环境什么的就看 gluon 了,先引入要用的包

from mxnet import autograd, nd

真正做线性回归是没法只用这么一点数据来模拟的,所以我们要先根据真实值来构造一些数据(这里跟 gluon 不一样的是我没有 bias 因子 b,后面也请一并注意)

num_inputs = 9          # 特征数,当前问题里的变量数 1-9
num_examples = 1000     # 样例数,我们会随机生成多少份样例来学习
true_w = nd.array([0, 0, 0, 0, 0, 1, 0, 2, 1])  # 真实值
features = nd.random.normal(scale=1, shape=(num_examples, num_inputs))  # 随机生成数据集
labels = nd.dot(features, true_w)                                   # 数据集对应的结果

初始化模型参数并创建梯度

w = nd.random.normal(scale=0.01, shape=(9, 1))
w.attach_grad()

定义模型,我们就是做的矩阵乘法

def linreg(X, w):
    return nd.dot(X, w)

定义损失函数,用平方损失

def squared_loss(y_hat, y):
    return (y_hat - y.reshape(y_hat.shape)) ** 2 / 2

定义优化算法,用小批量随机梯度下降(因为我们只用了一个大参数 w,所以还是比 gluon 的样例简单)

def sgd(param, lr, batch_size):
    param[:] = param - lr * param.grad / batch_size

训练,取步长 lr 为 0.01,轮次为 1000 轮

def train():
    lr = 0.01
    num_epochs = 1000
    net = linreg
    loss = squared_loss

    for epoch in range(num_epochs):
        with autograd.record():
            l = loss(net(features, w), labels)
        l.backward()
        sgd(w, lr, labels.size)
        train_l = loss(net(features, w), labels)
        if epoch % 100 == 99:
            print("epoch {}, loss {}, w {}".format(epoch + 1, train_l.mean().asnumpy(), w))

验证下结果看看

if __name__ == "__main__":
    train()
    test = nd.array([1, 0, 0, 2, 2, 1, 0, 0, 0])    # 测试集,565441
    print(nd.dot(test, w))

随便跑了一次输出如下,注意模型里每个值的科学计数法的指数

epoch 1000, loss [  5.72006487e-09], w
[[ -6.20802666e-06]
 [  1.62000088e-05]
 [ -1.03610901e-05]
 [  7.82768348e-06]
 [  2.59973749e-05]
 [  9.99964714e-01]
 [  1.86312645e-05]
 [  1.99990368e+00]
 [  1.00001490e+00]]
<NDArray 9x1 @cpu(0)>

[ 1.00002611]
<NDArray 1 @cpu(0)>

忽略精度问题,可以认为符合真实结果

全部代码详见 https://gist.github.com/whusnoopy/af0aa6fd276ace8a7c4d483e586e936d

关于一些音乐的记录

又是好久以前的草稿,那时候小苹果都刚出来,给的链接也都是 douban,现在看好多版权都只在 QQ 音乐了

关于恶趣味

  • 菊子桑 的金坷垃系列在 bilibili 上各种洗脑屠版,详见 https://space.bilibili.com/156160/
  • 筷子兄弟 的小苹果已经被各种神曲和鬼畜,目测未来会是广场舞的标志,凤凰传奇可以休矣(之前草稿写的,现在果然,而且之前只是觉得会是未来一年广场舞的标志,没想到到现在还是,娃的各种玩具也都有小苹果的音乐)
  • 在 大闹西游 这个 Flash 动画系列里,有一首「有只猴子掉下海」,其原始出处应该是 London Bridge is Falling Down

关于在电台和公共场合听到的

  • 忙碌超人,来自魔幻力量, 歌词里的核心是 BusyMan 不是 Superman, 难怪搜 superman 只能搜到曹格的格, 开车听 91.8 听到的。QQ 音乐链接 https://i.y.qq.com/v8/playsong.html?songid=651445
  • 之前公司还在紫荆城时经常去的餐厅 童年小筑,里面经常放的某首外文歌,用各种奇怪的搜索技巧后在百度知道里查到是 Schnuffel – Ich Hab’ Dich Lieb,豆瓣专辑 http://music.douban.com/subject/3161868/ 这整个专辑都是萌向。QQ 音乐专辑链接 https://y.qq.com/w/album.html?albumId=136895
  • 火柴天堂,原唱应该是熊天平,齐秦也唱过,动力火车也翻唱过,是一首传唱很多但是又在流行领域很少听到的歌(估计只是我个人比较恋旧且都在听挖坟级别的歌)。刚 QQ 音乐搜了下,翻唱远比我记得的更多,原版 https://i.y.qq.com/v8/playsong.html?songid=11528
  • 天下足球标配音乐 attraction アトラクション – 小澤正澄 Guitar Monster Vol.1,http://music.douban.com/subject/3137694/,很动感,节奏感超强,还是只有 QQ 音乐有版权 https://i.y.qq.com/v8/playsong.html?songid=105030246

那些让生活更美好的小玩意儿

好几年前的草稿,本想仔细介绍下,发现还是直接简单发吧

  • 电动牙刷
    • 美白功能没发现,刷牙刷够两分钟倒是真的
    • 之前用飞利浦大几百的,刷头也贵,现在用小米的,刷头也便宜点。个人建议选超声波,Oral-B 的都是机械刷
  • 狮王极细刷毛牙刷
    • 用完再对比普通牙刷,真的感觉是洗衣服的刷子
    • 据说狮王对这个极细刷毛技术有专利,所以别家没做,但也据说这个专利要到期了
  • 电动冲牙器(水牙线)
    • 比牙签好用,不会戳大牙缝,就是大的不方便带
    • 用了个把月,也没有每天两次,感觉牙结石什么的情况都好很多
  • 各种带口夹
    • 宜家有一包 20 个还是 30 个的,现在各家卖坚果的也送这货了
    • 对于一些开封没吃完的袋装食品很有用
  • 各种密封袋
    • 大号出门装东西, 旅行时分隔衣物
    • 小号的骑车或出去玩装证件和零钱啥的, 防水
  • 插头转换器
    • 对于功率不大的电器做分割
    • 现在房子墙壁上装那么多插座不现实, 直接托个插线板也不方便
    • 常见场景: 电视机/机顶盒公用两孔, 猫/路由公用两孔
  • 小米插线板
    • 省掉若干 USB 充电器,不过现在都是 QC 快充,又有点过时了
  • 大号长尾票夹
    • 除了本来的用途,还可以夹书架上拿来挂耳机或充电线接口
  • 浴帘杆
    • 租房时拿这货撑在浴室挂毛巾,或撑窗户上挂衣服,比他原本设计的功能靠谱多了
    • 现在住自己房子了发现有些毛巾还是不够挂,还是用的浴帘杆