重新集结部队!
周总结:25.6.17-25.6.24。
- 近期计划(1-2week):
cs50 AI。
数开第一步:hadoop.需求:startdb集成文件上传功能。
数据库大赛。
有空学一下前端,主要vue
每天留个档记录。
Cs50 AI week1
Search Problem!
范式,感觉像RL中部分概念
agent:代理实体,对环境采取行动。
state:agent在环境中的配置。
action:agent采取的行动。
transition model:状态转移模型,描述agent在不同状态下采取不同行动的概率和结果。
state space:状态空间,所有可能的状态集合。
goal test:目标测试函数,判断当前状态是否为目标状态。
path cost:路径成本,从初始状态到目标状态的代价。数据结构
node:
state
parent
action
path cost无信息搜索:深搜广搜
有信息搜索:
启发式(贪心)与终点比较?
A*:f(n)=g(n)+h(n),考虑当前节点到起点的代价和当前节点到终点的估计代价。
到此为止只有一个agent。
考虑对抗性的场景?
minimax:两方,一方希望最大化得分,一方希望最小化得分。
(嵌套的递归min(max())/max(min())
,把自己放在对方考虑决策和所有结果,不是局部贪心)
alpha-beta剪枝:记录当前最大/最小值,修剪到显然不必要的,减少搜索空间。
week2
knowledge
讨论如何实现命题逻辑propositional logic
knowledge base知识库:inference符合逻辑的推理。
使用知识库和输入,能否得到特定的输出a?
knowledge engineering知识工程:
对于信息进行编码clue:构造成逻辑表达式的形式,根据已知信息推理出结果为真/假的情况。
讲了很多离散数学的逻辑代数这一块,不详细记录了。
week3
uncertainty
主要讲了概率论方法。
两个概率模型:
贝叶斯网:计算联合概率时按条件链式展开。
隐马尔可夫模型。
week4
optimize
爬山算法(有点像梯度下降),模拟退火,线性规划。
约束满足问题:
给定变量和值域,硬约束和软约束。
一致性:(1)节点一致性:单变量约束。(2)弧一致性:双变量约束,用AC-3删除冲突值。
回溯搜索
数开
mpp架构:基于单机数据库集群。扩展性,热点?
- 离线和实时:
离线:数仓,搜索检索,批处理,有界数据。
实时:实时流处理,分布式消息队列。
分而治之,移动计算而非移动数据。
生态架构:自底向上
ETL层:
sqoop:分批抽取结构化数据
通过JDBC连接数据库直接抽取。
t+1,时间延迟,时效性差。CDC,Ogg:实时的结构化数据抽取
监控日志flume(侧重传输)/logstach(侧重处理):半结构化和非结构化
实时的:推送到消息队列,一般是kafka
数据存储:
文件系统HDFS
nosql数据库HBase(HDFS上层)
资源管理
- 资源调度yarn
与存储结构在一起。
在数据存储层的计算节点上,分配计算任务的资源,算完回收资源。
通用计算
Mapreduce(慢一点)
spark(快)
数据分析
Hadoop生态圈:
Hive:SQL转换成Mapreduce/spark
Malhot:机器学习api转化到通用计算spark生态圈
sparkSQL
MLlib:机器学习
GraphX:图计算
SparkStreaming:实时流计算,结果一般放在hbase(解决小文件问题(主要是大量的metadata))elasticSearch:搜索检索:模糊查询等。有自己的通用计算等,不依赖前面几个。
依赖
zookeeper:分布式协调服务
选举Leader(唯一写请求)/follower(读请求/写请求转发/投票)/observer(只读不投票/水平提升读吞吐)Oozie/Azkaban:计算调度
限定任务先后,定时等
本质上是构建一个分布式的os
HDFS架构
之前读过论文,简单写一下。
主从架构+(active/standby):实现HA高可用
一个file
-拆分-> 多个block块
-备份-> 一个block放在三个节点。