LOADING

缓存加载中...

25.6.17

2025/6/17

 

重新集结部队!
周总结: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放在三个节点。