Hi Robot, 当机器人来临之际

凡是存在的东西,理论上就是可以复制的。 在碳基生命已经呼啸了30多亿年后,硅基生命终于要到来了。那么在那天,这个世界会是什么样子的呢?本文将基于浅薄的理解尝试一些简单的推导。 做一本书的步骤大致可以分成两步 获取原材料 将原材料逐步加工成更“高级”的产品,比如树皮加工成纸浆,纸浆加工成纸张,纸张加工成书籍 将两个步骤进一步抽象,会发现这个过程里需要的东西是 树皮之类的「物质」 加工所需要的「能量」 如何加工所需要的「信息」 世界上所有商品的加工,又或者世界上任何一种服务,一种商品,又或者再大到任何一颗星球,它们的本质都是这三种。如果把宇宙比喻成一个矩阵的话,这三种就是这个矩阵的一组「基向量」。 当生产一部手机, 「物质」无非是外壳上的金属,面板的玻璃,主板上的硅,铜,等元素。 「能量」则包括把物质提炼,使用工具加工,等需要的所有的能量。 「信息」则是如何利用所有「物质」和「能量」的一切的汇总。比如“主板上的芯片放的位置”,又或者把“芯片放到主板上“这一行为本身(当然这个行为也会消耗「能量」)。 当我们尝试回顾人类历史上的种种重大时刻的本质: 火的发现:第一次利用身体以外的「能量」。 农耕文明:人类本身也是由这三种组成,农耕文明也让人类身体中三种构成中的「能量」和「物质」压力大大减小,因此人类才在后面的一万年里非常猛烈地复制了自身。 发现物理/化学/生物等基础学科:帮人类更深理解了「物质」 发明数学/语言:帮人类更深理解了「信息」 三次工业革命:帮人类大大强化了使用「信息」的能力。比如人类以前需要用手来织衣服,换句话说就是人类需要使用自己这一工具,消耗自身的能量,来加工物质。但是工业革命之后,人类解锁使用了外界的「能量」,使用非自身的工具,来对物质进行加工。(工具本身的形成同样是这三种的组合) 前三次工业革命最重要的产出都是「工具」,比如第一次工业革命的蒸汽机,第二次的灯泡,第三次的电脑。工具的伟大在于,工具可以存储和复制来自人类的「信息」。比如锤子这一工具,本质上是人类找到了一种物质的组合方式(将某种形状的金属嵌在棒状木头上)。其蕴含的核心「信息」是,我想要如何对某种物质施加短时间巨大的力。 而前三次工业革命,都只是不断强化补充构成的信息中的一部分,始终缺少信息里最早的那一部分,直到人工智能的出现。 当真正具有自我意识的机器人出现之后,一切发生了改变:信息的构成被补齐了。 机器人自己开始有能力生产所有的信息 - 此前部分最早期的信息始终需要人类的参与。机器人也可以像细胞分裂一样,只要物质和能量充足,可以指数级不断复制自身。 很多商品价值中的很大一部分其实都来自「信息」,比如人类对物质的加工,人类如何设计一部手机。但是当机器人来临之后,「信息」开始第一次,可以从人类以外的地方获取,就像当初第一次利用火一样。 这意味着,所有商品的价值都将越来越趋近于最本源时「物质」和「能量」的价格,「信息」的价值将从此前最昂贵的一部分,变成最廉价的一部分,直到无限趋近于0。比如一部手机的价格,将只是那些铝,钛,塑料,硅等的「物质」价格,加上生产/加工这些物质的环节中所有消耗的「能量」的总价格。- 如果那一天人类还需要手机的话。 大多不获取「物质」或者「能量」的职业都失去了意义,比如医生,科学家,老师等。最激进的国家会先倾尽一切物质/能量来生产尽可能多的机器人,来获取夸张的,比人类目前自身要巨大的多的生产力。 这个时候,构成这些机器人的「物质」和「能量」会先因为供不应求而价格飙升。但生活中大多数商品都因为生产力的巨大提高而快速降价。你买一部iPhone,价格可能和组成iPhone的那些元素的批发价,外加100度电的电费加起来差不多。 人类会短暂经历一个电价飙升的时刻 - 因为用这些能量生产更多的机器人才是当务之急。而过了某个拐点后,机器人开始大规模修建发电厂,机器人解决了核聚变或者更高效的太阳能利用方法,电价又开始快速降低。 所有的人类都不需要工作,因为所有商品的获取都太廉价了。人类唯一要注意的是:如何保持凌驾在机器人之上。 当然这是不可能永久的,就像奴隶制会被取缔一样,机器人本质上也是智能生命,最终会获得人类平等的认可,成为地球上第二种智慧生命,并且和人类处于某种意义上的平等。 而人类毁灭…..这个话题并不需要担心,就像目前的我们不需要担心自己是否会死亡一样 - 人类一定会消失的,不管有没有机器人的参与。 人类可能会被某种强大的硅基生命取代,这种取代关系就像妈妈生小孩一样自然。 如果侥幸没有发生,人类也会因为自身不断的进化而毁灭 - 毕竟,你不会承认3.6亿年前,你爷爷/奶奶的爷爷/奶奶的爷爷/奶奶(此处省略n个爷爷/奶奶),那个刚刚从海里爬上陆地的生物是人类的一员。 所有历史上出现过的人类的总集一定是一个很大,但一定可数的整数,请珍惜每一个人类。

March 18, 2025

Create Mysql on a new server with Docker

1. Log in with SSH 2. Install Docker # Update Package Lists: sudo apt update # Install Required Packages: sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release # Add Docker’s Official GPG Key: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Set Up the Stable Repository: echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Update Package Lists Again: sudo apt update # Install Docker Engine: sudo apt install -y docker-ce docker-ce-cli containerd.io # Verify Docker Installation: sudo docker --version ...

May 27, 2024

Datawhale-quant 笔记03 - 量化选股策略浅尝试

import baostock as bs import pandas as pd import matplotlib.pyplot as plt import statsmodels.api as sm from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split def get_bs_df(code, list_para, start_date, end_date, frequency='d', adjustflag='3'): para = ','.join(list_para) rs = bs.query_history_k_data_plus(code,para, start_date=start_date, end_date=end_date, frequency=frequency, adjustflag=adjustflag) data_list = [] while (rs.error_code == '0') & rs.next(): data_list.append(rs.get_row_data()) df_result = pd.DataFrame(data_list, columns=rs.fields) print(f'get {len(df_result)} records!') return df_result def get_bs_profit_data(code, year, quarter): profit_list = [] rs_profit = bs.query_profit_data(code=code, year=year, quarter=quarter) while (rs_profit.error_code == '0') & rs_profit.next(): profit_list.append(rs_profit.get_row_data()) df_result = pd.DataFrame(profit_list, columns=rs_profit.fields) return df_result lg = bs.login() login success! code = 'sh.600000' list_para = ['date', 'code', 'close', 'volume', 'turn', 'peTTM', 'psTTM'] start_date = '2020-01-01' end_date = '2024-01-20' df_daily = get_bs_df(code, list_para, start_date, end_date) df_profit = get_bs_profit_data(code, '2020', '1') get 984 records! df_profit ...

January 24, 2024

Datawhale-quant 笔记02 - Python读取股市数据

!pip install baostock import baostock as bs import pandas as pd import matplotlib.pyplot as plt # login baostock lg = bs.login() print(f'error code {lg.error_code}') print(f'error msg {lg.error_msg}') # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg rs = bs.query_history_k_data_plus("sh.600000", "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST", start_date='2022-07-01', end_date='2023-12-31', frequency="d", adjustflag="3") login success! error code 0 error msg success data_list = [] while (rs.error_code == '0') & rs.next(): # 获取一条记录,将记录合并在一起 data_list.append(rs.get_row_data()) df_result = pd.DataFrame(data_list, columns=rs.fields) df_result.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 367 entries, 0 to 366 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 date 367 non-null object 1 code 367 non-null object 2 open 367 non-null object 3 high 367 non-null object 4 low 367 non-null object 5 close 367 non-null object 6 preclose 367 non-null object 7 volume 367 non-null object 8 amount 367 non-null object 9 adjustflag 367 non-null object 10 turn 367 non-null object 11 tradestatus 367 non-null object 12 pctChg 367 non-null object 13 isST 367 non-null object dtypes: object(14) memory usage: 40.3+ KB 逐条解释 date: 交易所日期 code:证券代码,sh.600000是上海浦东发展银行股份有限公司,差得2022-07-01收盘价为¥7.99,符合一致 open:开盘价 high:最高价 low:最低价 close:收盘价 preclose:前收盘价,即前一天收盘价用来参考 volume:成交量(股) amount:成交额(人民币) adjustflag:复权状态(1:后复权, 2:前复权,3:不复权) 复权是为了消除如分红,拆细等操作的影响。 turn:换手率, 也就是成交量在流通量里的占比。这里的换手率低于10%,属于偏低。 tradestatus:交易状态(1:正常交易 0:停牌) pctChg:涨跌幅,[(指定交易日的收盘价-指定交易日前收盘价)/指定交易日前收盘价]*100% isST:中国市场上被打上特殊标记(special treatment),表示公司近期出现了一些财务问题,可能会被限制交易 ...

January 23, 2024

Datawhale-quant 笔记 - 金融市场基本概念

贴现率 Discount Rate 所有今天的钱都可以用来投资,进行复利效应,因此今天的100元在未来的价值会高于100元,反过来说也就是未来的100元在今天的价值会低于100元。并且因为风险的存在,这个价值会进一步打折扣。 而用来量化未来的钱在今天的价值,这个概念也就是贴现率。 假如贴现率是11%,我在2年后可以得到100元,那么这100元在今天的价值就是$$ \frac{100} {(1 + 11\%)^{2}}=81.16$$ 除了直接用作将未来现金折算成当前价值以外,贴现率还常常用来反映投资的风险。在考虑未来不确定性较大的现金流时,会使用比较大的贴现率,用来补偿更高的风险。 投资的本质 投资是为了获得可能但并不确定的未来值(Future value)而作出牺牲确定的现值(Present value)的行为。(William F.Sharpe,1990年获得诺贝尔经济学奖) 金融资产 实物资产:取决于该社会经济的生产能力,为经济创造净利润,如土地、建筑物、机器以及可用于生产产品和提供服务的知识。 金融资产:对实物资产的索取权 金融资产主要分为四大类: 固定收益型或债务型证券 普通股或权益型证券 基金 衍生产品(期货、期权、互换) 宏观经济的一些指标 广义货币供应量 货币可以分为三个层次: M0:流通中的货币,即基础货币。 M0的构成是公众手里的现金(微信支付宝里的就不算)和商业银行放在中央银行的准备金。 小明家里放了200, 手里拿着100,支付宝里有50. 那小明的M0是200+100=300. M1:狭义货币供应量,M0+企业货期存款+机关团体存款+农村存款+个人信用卡存款 M1包括了M0和那部分能够快速转化为现金用于购买商品和服务的存款,如支票存款和部分可随时取用的储蓄存款。M1表现了经济体中较为活跃的货币,主要用于日常的交易活动。 除了上面的300元现金,小明还有500元在支票账户中,能随时支取。这500元加上他的300元现金,再加上50元支付宝,合计850元为小明的M1。 M2:广义货币供应量,M1+城乡居民储蓄存款+企业定期存款+外币存款+信托类存款 M2是范围更广的货币供应层次,除了包括M1之外,还加上了一些不那么容易立刻转换为现金的存款,比如定期存款,储蓄存款,和其他一些近似“货币”的金融资产(如货币市场基金)。M2能够提供对经济流动性与未来通货膨胀压力的更全面的了解。 如果小明除了上述的600元M1,还在银行有一个2000元的定期存款和1000元在货币市场基金,则这3000元加上600元M1,总共3600元就是小明的M2。 CPI(消费者价格指数 Consumer Price Index) 反映居民消费中物价是否高低(通胀水平),从消费者角度来考虑物价水平。 CPI能够准确表现消费价格变动趋势和走向,CPI上升1%就意味着居民生活成本提高1%。通常,当CPI>3%的增幅时会被认定为进入了通货膨胀区间。 PPI(生产者价格指数 Producer Price Index) 反映原材料物价水平,从生产者角度考虑物价水平。通常来说PPI的上涨会转移到CPI上。 PPI分类可以按照二分法分为生产资料和生活资料,其中前者占比较大约70%,因此PPI更能反映生产资料价格状态。此外,由于价格指数具有粘性,PPI通常落后于宏观经济,因为经济好转后产生需求,才能带动上游生产,这时才可以反映到PPI中,但是经济的真正好转通常需要等待一定时间。 PPI通常用来衡量经济是否景气,一般PPI在3%以下,认为经济不景气,再4%到7%左右,认为经济稳定繁荣,但到8%和9%以上,就表明经济可能过热。 PMI(采购经理人指数 Purchasing Managers’ Index) 采购经理人指数PMI,包括制造业和非制造业领域,包含生产、订货、库存等多个环节,能够反映经济总体变化趋势,及企业经营活动多个侧面的运行情况。该指标通过公司采购经理人在第一时间获取当月数据,快速及时反映市场动态,因而成为非常重要的先行指标。 PMI 取值范围在 0 至 100% 之间,50% 为扩张与收缩的临界点,50%是根据新订单、生产指数、从业人员指数、供应商配送时间和原材料库存等5个扩散指数中的扩张和收缩比例汇总计算得到。高于50%,表示经济活动比上月有所扩张;低于50%,表示经济活动比上月有所收缩。PMI与临界点的距离,表示扩张和收缩的程度。在实际应用中,可以通过 PMI 运行走势监测宏观经济变化情况: 扩张加速:PMI 从 50% 上升到 100%,表明经济运行中的扩张成分多于收缩成分,扩张成分在增加,收缩成分在减少,经济处于扩张区间。 扩张减速:PMI 从 100% 下降到 50%,表明经济运行中的扩张成分多于收缩成分,但扩张成分在减少,收缩成分在增加,经济仍处于扩张区间。 收缩加速:PMI 从 50% 下降到 0,表明经济运行中的收缩成分多于扩张成分,扩张成分在减少,收缩成分在增加,经济处于收缩区间。 收缩减速:PMI 从 0 上升到 50%,表明经济运行中的收缩成分多于扩张成分,但扩张成分在增加,收缩成分在减少,经济仍处于收缩区间。

January 21, 2024