ML week2.1.2
2025.03.12 Wed PM 2:40 ・ 42Minutes 31seconds
ZHANG YIWEN
ML 第 2 周 2.1.2 2025.03.12 周三下午 2:40 ・ 42 分钟 31 秒 张一文
Attendees 1 00:00
각각 이런 것들을 좀 자세하게 다룰 거기 때문에 네 우선 첫째 데이터 프리 프로세싱에서 예를 들면 어떤 거 하면은 데이터 클리빙 같은 작업을 합니다.
데이터 클리빙 데이터가 깨끗하고 들어온 게 있나 데이터 클리닉이 한 건 들어온 게 있어요.
그래서 예를 들면 내가 무슨 작업 하려고 해서 데이터를 쭉 수집했는데 왜 데이터나 이런 데는 다 빵꾸가 나 있지 뭐 그런 게 있을 수 있어요.
그럼 어떻게 처리해야 될 거냐 또 어떤 건 노이즈 데이터 이거는 왜 키가 3M라고 돼 있지 그러면 이게 오류일 수 있겠지.
아웃라이어 키가 2m인데 내가 학생들의 체중과 키의 관계 이런 걸 좀 이렇게 추정 하려고 그러는데 봤더니 누가 키가 2m인데 몸무게는 40이야.
그러면 이건 뭐 오류는 아닐 수 있는데 굉장히 예외적인 케이스죠.
그러면 이런 거는 일반적이지는 않으니까 빼고 학습 데이터로 쓰자고 그런 걸 할 수도 있어요.
그런 일련의 작업들을 하는 게 클리닉이에요. 여기 보면
参与人员 1 00:00 因为我们将详细讨论这些内容,所以首先在数据预处理中,例如,我们会进行数据清理等工作。数据清理是指检查数据是否干净、是否已导入。例如,我收集了一些数据用于某项工作,但发现数据中可能存在许多缺口。那么我们该如何处理呢?还有一些是噪声数据,比如身高标记为 3M,这可能是一个错误。对于异常值,比如我想研究学生身高和体重的关系,但发现有人身高 2 米体重只有 40 公斤。这可能不是错误,但确实是非常特殊的情况。因此,我们可能会将这种不寻常的数据排除在学习数据之外。这就是数据清理的一系列工作。在这里可以看到
Attendees 1 01:06
내가 예를 들어서 우리 엠플로이의 어떤 능력 평가 시험 점수가 있고 거기에 따라서 연봉이 있는데 거기에 따라 가 있는 각자의 연봉이 있는데 이 사이에 무슨 상관관계가 있나 보려고 봤더니 이런 데이터들이 있어요.
대략 보면 능력 점수가 높은 사람이 연봉이 높군 이런 게 있는데 경우에 따라서는 보면 점수는 높은데 연봉이 형편 없는 어떤 사람 케이스가 있었다면 뭔가 다른 이유로 혹은 뭐 능력은 형편 없는데 돈만 많이 받는 사람이 있을 수도 있는데 물론 정상적일 수 있죠.
그런데 전체적인 추세를 따지는데 조금 이게 아주 예외적인 아웃라이어다 생각이 되면 이런 걸 이제 찾아내서 제거하거나 좀 빼고 좀 추세를 잡아보자.
이럴 수 있다는 거죠. 그 흔히 하는 건 데이터 트랜스포메이션 데이터 트랜스포메이션 우리가 여러 개의 피처 밸류로 이제 표현이 된다 이거죠.
x라는 값이 그런데 그것마다 왜하면 그 값의 의미가 다 다르니까 그 값의 범위라든지 이게 다 틀릴 수 있어요.
以我为例,我们员工的某种能力评估测试成绩,根据这些成绩有相应的薪酬。我查看了这些数据之间的关系,大致可以看出能力分数高的人薪酬也高。但在某些情况下,可能会出现分数很高但薪酬很低的情况,或者能力很差但薪酬很高的情况。当然,这可能是正常的。但在整体趋势中,如果认为这是非常特殊的异常值,就可以找出并删除这些数据,以获得更准确的趋势。这就是常说的数据转换,我们用多个特征值来表示。这是因为每个值的含义和范围可能都不同。
Attendees 1 02:11
그런 걸 이제 다 좀 맞춰주겠다 이거죠. 예를 들면 내가 임플로이에 관한 데이터를 다루는데 에이즈라는 피처도 있고 셀러리라는 피처도 있어서 이것들이 어쨌든 뭔가 예측 모델을 학습하는 데 사용된다 이거죠.
근데 가만히 갔더니 에이즈는 범위가 0에서 100 사이의 점수인데 연봉이라는 거는 사람마다 편차가 이 1천만 단위로 나잖아요.
그러니까 범위가 너무 다르면 그럴 때는 어떤 모델이 연봉이라는 값에 의해서 저질 수가 있어요.
그러니까 이걸 레인지 같은 걸 맞춰주지 않고 흔히 하는 게 노멀라이제이션 그러면 전부 다 0에서 1 사이의 값으로 딱 뭔가 레인지를 맞춰준다.
혹은 스탠더다이제이션이라는 건 뭐냐 하면 전부 다 평균 제로 그다음에 표준 편차 1인 어떤 값으로 이걸 변환한다.
어떻게 변하느냐에 따라서 여러 가지 트랜스포메이션이 있을 수 있고 또 그런 값의 레인지만 바꾸는 게 아니라 예를 들면 연속된 값인 피처를 우리가 디스크티 한 값으로 바꾸는 그런 것도 있을 수 있어요.
现在我们要调整这些差异。例如,在处理员工数据时,可能有年龄和薪资等特征,用于构建预测模型。但是,如果年龄是 0-100 的分数,而薪资则以百万为单位变化,范围差异太大会影响模型。这时常用的方法是标准化,即将所有值转换到 0-1 范围内,或者使用标准化(使所有值以零为均值,标准差为 1)。根据转换方式的不同,还可以将连续值转换为离散值。
Attendees 1 03:17
예를 들면 나이가 점수로 다 이제 제시가 돼 있는데 이걸 다 다르게 할 필요 없다.
그냥 젊은 사람은 어떻고 나이 든 사람은 어떻다 이런 것으로 내가 표현해서 규칙을 찾아내거라 하는 것이 차라리 맞다 좋다고 그러면 몇 살을 기준으로 이걸 두 개 혹은 3개의 값으로 변경할 수도 있겠죠 그런 작업을 할 수도 있고 이런 걸 전부 다 트랜스포메이션 한다고 그래요.
피처 셀렉션은 우리가 지금 아까 포디맨 저널 데이터인 아이리스 데이터 4개 값으로 표현된 엑스가 있죠 그런데 어떤 거는 10개, 20개, 100개, 1천 개 엄청나게 많은 피처 밸류들이 있을 수 있겠죠.
그러면 그것들을 전부 다 정보는 많을수록 좋으니까 다 쓰는 게 꼭 좋으냐 하면 그중에 상당 부분이 내가 예측하려는 예를 들어 클래스나 어떤 과 별 관계가 없는 그런 값이다.
그러면 그런 것들은 빼고 하는 게 오히려
与会者 1 03:17 例如,年龄现在已经作为分数呈现出来了,但不需要这样做。就简单地表达年轻人是怎样,年长者是怎样,这样找出规则会更好。如果觉得这样可以的话,可以根据某个年龄为标准将其分为两个或三个值。这种操作我们称之为转换。特征选择是指,就像我们刚才使用的鸢尾花数据集,有四个值表示 X。但是在某些情况下,可能会有 10 个、20 个、100 个、1000 个特征值。那么,信息越多是否就越好呢?实际上不一定,因为其中相当一部分可能与我们要预测的类别或某些关系没有关联。
Attendees 1 04:16
학습이 더 잘 더 좋은 모델을 만들 수 있어요. 그래서 피처 셀렉션이라는 건 보통 이제 중요한 이슈이기는 한데 밑에 그냥 개념적으로 그려놓은 그림이 있죠 왜냐하면 5개의 어떤 피처 시 제공되는 데이터가 있는데 나는 아 얘네들은 이건 예스냐 뭐냐를 결정하는데 이건 거의 상관이 없는 겁니다.
그러면 이것만 가지고 나는 학습을 수행하겠다. 이렇게 선택을 하면 이걸 피처 셀렉션이라고 얘기하고 비슷한데 디멘전 리덕션이라고 하는 것도 있어요.
디멘전 리덕션은 뭐냐 하면 4 디멘전할 데이터를 예를 들면 2 디멘전할 데이터로 디멘전을 줄이는 차원 축소하는 거죠.
그럼 아까 것도 5가 2로 줄은 거 아니냐 아까 거는 있는 것 중에 일부를 선택하는 거고 이거는 데이터 자체를 새로운 데이터 바꾸는 거예요.
보통 이런 PCA 같은 걸 사용해서 하는데 새로운 데이터로 어떻게 바꾸는가 하면
与会者 1 04:16 这反而可能会使学习更好,创建更好的模型。所以特征选择通常是一个重要的问题,下面有一张概念性的图。比如提供了 5 个特征,但我发现其中几乎没有什么相关性,可以决定是或否。那么我就可以只用这些进行学习,这就是特征选择。类似的还有维度规约,维度规约是指将 4 维数据例如转换为 2 维数据,降低维度。那么刚才的例子是不是也是从 5 降到 2?不,刚才是从现有数据中选择部分,而这是将数据本身转换为新的数据。通常使用 PCA 等方法,那么如何转换为新数据呢?
Attendees 1 05:19
이런 예를 가지고 가 있어요. 자 여기 두 개의 값으로 표현된 데이터가 있어요.
그래서 x1 값이 뭐냐 x2 값이 뭐냐에 따라서 다양한 데이터들이 있다.
그 데이터들을 앞서 우리가 이전트에서 해 본 것처럼 x1 x 평면상에 쭉 나타내 봤더니 데이터가 이런 데이터들이 있네 하는 데이터 말이죠.
이 x1 x2를 그냥 써도 되지만 나는 이거 변환을 하겠다.
어떻게 변환하냐면 이게 엑스 축이고 이게 와이 축이라고 그러면 엑스와이 축을 나는 바꿀래 좌표 축을 바꾸는 거예요.
예를 들어 그럼 예컨대 여기 이런 게 11 이라는 데이터가 있단 말이죠 네 1 1 똑같은 데이터인데 나는 좌표 측을 지금 이게 x1 x2 라고 하죠 네 x1 x2 x1 x2 이런 좌표 측에 대해서 표현됐을 때 이게 1 1 이라는 데이터지만 나는 좌표 축을 바꿔서 이제는
参会者 1 05:19 我这里有这样的例子。看,这里有两个值表示的数据。所以根据 x1 值是什么,x2 值是什么,有各种各样的数据。就像我们之前在上一个环节中做的那样,我将这些数据绘制在 x1 x2 平面上,发现有这些数据。我不仅仅是使用 x1 x2,而是要进行转换。怎么转换呢?如果这是 x 轴,这是 y 轴,那么我想改变坐标轴。例如,假设这里有一个值为 1 1 的数据。是的,是同样的数据,但是在原来以 x1 x2 为坐标轴的情况下,
Attendees 1 06:22
그림에 써 있는 것처럼 XY를 이렇게 바꾸면 새로운 좌표 측에서는 이 데이터가 조금 다르게 표현되겠죠 예를 들면 이게 지금 이 데이터인데 그러면은 이 데이터는 여기서는 새로운 좌표 축에서는 2 0, 1 뭐 이런 걸 수도 있단 말이에요.
그거 왜 바꾸는데 뭐냐 하면 이거 잘 보면 데이터가 약간 이렇게 길이로 분포돼 있죠 그러니까 내가 이 데이터를 표현한 좌표 측을 오른쪽과 같이 바꾸면 x 축으로는 데이터가 이제 분산이 크고 y축으로는 분산이 굉장히 작아요.
이거보다 더 극단적인 경우도 있겠죠 그러면 무슨 소리냐 하면 이렇게 싹 잡혀.
축을 바꾸고 나면 내가 이 데이터를 꼭 두 개의 값으로 표현해야 돼.
별로 안 그래도 될 것 같을 수가 있어요. 왜냐하면 와이 축으로는 어차피 다 값이 비슷비슷하니까 별 정보가 안 돼.
그 나는 x 1 프라임 축의 값만 가지고도 이 데이터를 구분하는 데 충분하다.
이렇게 될 수가 있습니다.
参会者 1 06:22 就像图中所示,如果我这样改变 XY 轴,在新的坐标轴中,这个数据会以不同的方式表示。例如,这是原始数据,那么在新的坐标轴中,它可能是 2 0, 1 等。为什么要改变呢?仔细观察,数据是这样沿着长度分布的。如果我将数据的坐标轴改为右侧那样,x 轴上的数据方差很大,而 y 轴上的方差非常小。极端情况可能会更明显。这意味着,改变轴后,我必须用两个值来表示这个数据。但这可能并不必要,因为在 y 轴上,值都很相似,没有太多信息。我可以仅仅使用 x1'轴的值就足够区分这些数据。情况可能就是这样。
Attendees 1 07:31
그래서 이렇게 좌피 쪽을 바꿔놓고 x1 프라임으로 프로젝션을 해버리면은 이게 이제 1차원 데이터가 되겠죠 그러면은 두 개의 값으로 표현된 데이터를 한 개의 값으로만 표현하면서도 데이터를 데이터의 특성을 잘 나타낼 수 있는 어떤 뭔가 유지할 수 있다는 그래서 하나의 예로 우리가 아이리스 데이터 같으면 이제 4개의 값으로 표현된다고 그랬어요.
그러니까 4 디멘저널 데이터인데 여기 150개의 데이터 샘플이 주어진다고 그랬죠 이 150개가 지금 어떻게 분포되나 내가 비주얼라이즈 하려고 보면 4차원으로 뭐 이렇게 비주얼라이즈 하기는 어렵잖아요.
그래서 이걸 차원을 축소하는 거예요. 어떻게 하냐 하면 네 새로운 좌표축 4개를 찾아가지고 그걸 우리가 프린iple 컴포넌트라고 얘기해요.
찾는 방법은 우리가 나중에 이걸 좀 다룰 텐데
因此,如果将坐标轴改为这样,然后将 x1 投影为 x1',它就变成了一维数据。那么,用一个值来表示原来两个值的数据,同时还能保持数据的特征。举个例子,如果是鸢尾花数据,之前说过它是由 4 个值表示的,即 4 维数据,有 150 个数据样本。如果我想可视化这 150 个数据的分布,用 4 维方式可视化是很困难的。所以我们要降维。怎么做呢?找到 4 个新的坐标轴,我们称之为主成分。具体方法我们稍后会讨论。
Attendees 1 08:31
본적으로는 뭐지? 아이 백터 이런 걸 찾아가지고 분산이 가장 큰 축 그다음 큰 축 그다음 큰 축 이런 걸 찾아나가는 그런 방법을 써요.
그러면 4개의 값으로 표현되어 있는 걸 새로운 4개 좌표 축으로 표현한 다음에 그중에 가장 분산이 큰 것 두 개를 선택하면 이제 투기면 전화 데이터로 표현이 됩니다.
근데 이거는 이 중에 뭔가를 선택하는 그런 개념이 아니죠 아니고 이건 완전히 새로운 좌표 축에서 데이터를 표현하는 거예요.
이렇게 이제 바꾸고 나면 리덕션하고 나면 예를 들면 컴포넌트 원 컴포넌트 2 두 개의 값으로 지금 표현됐으니까 이런 2차원 평면상의 데이터의 분포가 같은 거죠.
쉽게 볼 수가 있겠죠 이렇게 보면 이게 지금 색깔이 클래스를 구분하고 있는 건데 아 이게 이렇게 두 개의 값으로도 이렇게 그룹이 어느 정도 잘 구분이 되는구나.
이렇게 볼 수가 있습니다.
基本上是什么?找到主向量,然后找出方差最大的轴,接着是第二大的轴,依此类推。这样,原本由 4 个值表示的数据,用新的 4 个坐标轴重新表示,然后选择方差最大的两个,就可以转换为二维数据。但这不是从中选择某些内容,而是在完全新的坐标轴中表示数据。降维后,例如用主成分 1 和主成分 2 两个值表示,就可以在二维平面上看到数据的分布。这样就很容易观察了。从颜色可以看出分类,可以发现即使用两个值,数据的分组也能很好地区分。
Attendees 1 09:35
네 그다음에 이제 실제 머신러닝 알고리즘을 우리가 적용하는 단계에서 우선 첫째는 어느 알고리즘을 쓸 거냐 이 모델을 우리가 선택하는 자 예를 들면 아까 2디멘전한 어떤 데이터가 있다.
그래서 여기서 x1 x2라고 안 쓰고 이렇게 h 놨었네요.
그러니까 이런 문제를 한번 생각을 해 보죠. 학생의 키가 있고 몸무게 데이터가 있습니다.
모든 학생이 이 두 개의 값으로 표현되는 거예요. 그리고 내가 결정하려는 건 얘는 a겠어 f겠어 결정하는 물론 키와 몸무게로 결정된 건 아니겠지만 예를 들어서 네 그래서 과거에 데이터를 쭉 봤더니 이런 애가 이거 이런 애가 f였네 잔뜩 있단 말이죠.
그래서 내가 그걸 구분하는 모델을 찾으려고 그래요.
네 첫 번째 왼쪽에 있는 그림은 디시전 트리라는 노래를 쓴 거예요.
디시전 트리는 나중에 보면 자세히 다룰 텐데 어떤 특징과 어떤 피처 하나 선택해서 그걸로 갈러요.
일단 예를 들면 h에 따라서 이 값이 이거보다 작냐 크냐 딱 가르니까 그러면
参会者 1 09:35 是的,接下来在我们实际应用机器学习算法的阶段,首先第一个是选择使用哪种算法,选择这个模型。例如,之前我们有一个 2 维的数据。所以在这里没有写 x1 x2,而是这样标记了 h。那么让我们来思考这个问题。我们有学生的身高和体重数据。所有学生都可以用这两个值来表示。我要决定的是他是属于 a 还是 f 类别,当然不是仅仅依据身高和体重,这只是举个例子。所以回顾过去的数据,发现有这样的情况,有这种类型是 f 类别,有很多这样的数据。所以我想找一个能区分这些的模型。是的,左边第一张图是使用决策树。决策树我们稍后会详细讨论,它会选择某个特征,并根据该特征进行分类。比如说,根据 h 值,判断是否小于某个值,就可以直接划分。
Attendees 1 10:41
특정 키보다 작은 경우 보니까 다 a이네. 그러면 결정이 이거보다 큰 경우는 a랑 f가 섞여 있어요.
아 그럼 또 그중에서는 뭐 예를 들면 몸무게가 85 이상이냐 이하로 가르면 되겠다.
가르고 나니까 또 결정이 다 됐죠 아 그러면 이렇게 결정하면 되네 하고 이런 모델을 우리가 만들 수가 있는데 이건 어떤 아주 이프 된 같은 규칙이 여러 개가 그다음 묶여서 만들어져 트리 같은 모양이에요.
이런 트리를 학습해서 이걸 모델로 할 수도 있어요.
그런데 그렇지 않고 우리 앞서 본 것처럼 아 이거 이 hw 그러니까 피처 스페이스를 a와 f를 구분하는 구분선을 찾아서 가를 수도 있는데 이 경우에는 이제 직선으로 잘 가려진다.
그럼 이런 빨간색으로 있는 직선인 걸 가르고 있죠 이 직선만 찾으면 되는 거예요.
그 직선의 방정식은 예서 이런 식으로 나타날 텐데 두 개의 파라미터에 의해서 이게 이런 건지 이런 건지 이런 건지가 결정되겠죠 이 파라미터 두 개를 이렇게 찾으면
参会者 1 10:41 观察发现,小于特定身高的情况下都是 a 类。那么在大于这个值的情况下,a 和 f 是混合的。啊,那么我们可以再进一步,例如根据体重是否大于 85 来划分。划分后就可以做出决定了。我们可以这样建立模型,这是一个由多个 if-then 规则组成的树状结构。我们可以学习这样的树并将其作为模型。不过,正如我们之前看到的,我们可以在特征空间中找到一条分隔 a 和 f 的分界线。在这种情况下,可以用一条直线很好地分割。如图中红色直线所示,只需找到这条直线。这条直线的方程将由两个参数决定,即是这种类型还是那种类型,通过找到这两个参数来确定。
Attendees 1 11:49
네 요거는 요 그림에 나와 있는 건 이게 이제 사실은 로지스틱 리그레션에 해당되는 건데 이게 나중에 신경록 모델을 다룰 때 하나의 퍼셉트롤이라는 모델이 바로 이런 걸 해주게 돼 있어요.
그래서 이런 모델을 가지고 우리가 이런 어떤 형태로 모델을 얻을 수도 있는 어느 것이 이 특정 테스트에 더 적합한지 이런 것들을 우리가 보고서 적절한 어떤 모델을 선택해야 된다.
네 어떤 특정한 모델을 선택했어도 그다음에 그 모델의 적절한 콤플렉스티를 또 따져야 되는 경우가 있어요.
컴플렉스티는 뭐냐 하면 이런 자 내가 똑같이 디시전이라는 걸 쓰려고 그럽니다.
그래서 이렇게 데이터를 보니까 이렇게 가르고 이렇게 가르면 되네 했는데 이러면 여기서 디시전 트이라는 게 이제 뭐 이럴 땐 이렇고 이럴 때는 이렇게 다 간단하게 표현될 수가 있을 거예요.
그런데 데이터를 보니까
与会者 1 11:49 是的,这里显示的其实是对应逻辑回归的内容,这在以后处理神经网络模型时,会由一个称为感知器的模型来完成。因此,我们可以用这种模型来获得某种形式的模型,并判断哪个更适合特定测试。是的,即使选择了某个特定模型,有时还需要考虑该模型的适当复杂度。复杂度是什么呢?我想使用决策树作为例子。当我们看这些数据时,可以这样划分,那样划分,决策树可以简单地表示:在这种情况下是这样,在那种情况下是那样。但是当我们看数据时
Attendees 1 12:49
이렇게만 갈라 가지고는 여기 이거 아직 못 맞힌 게 있다.
여기 틀린 게 있다. 여기도 틀린 게 있다. 뭐 이렇게 되겠죠 네 그래서 그러면 어떻게 하냐 그럼 더 갈라요.
与会者 1 12:49 仅仅这样划分,这里还有一些未能正确分类的地方。这里有错误,那里也有错误。那该怎么办呢?那就继续划分。
Attendees 1 13:03
이럴 때는 이렇게 또 갈라봐야 되네 또 이렇게 갈라봐야 되네.
이래야만 정답을 맞출 수 있는 어떤 디테일한 규칙으로 이렇게 모델이 표현될 수가 있겠다.
그러면 이거보다는 이게 콤플렉스티가 더 큽니다.
이것도 마찬가지예요. 어 나 직선으로 그냥 디시션 바운더리를 찾으면 되겠는데 아무리 그어봐도 100% 맞추는 라인이 안 나와.
그럴 수도 있겠죠 그래서 이거는 뭐야 1차원 그러니까 직선으로 내가 구분할 수 없을 것 같고 뭔가 이런 이차원적인 아니면 더 복잡한 함수로 미션 반을 정의해야 되기 때문에 콤플렉스도 자 그런데 우리가 이제 목적은 이거죠.
이 테스크에 대해서 퍼포먼스 정확도 같은 게 예를 들면 높게 나오게 하고 싶은 거예요.
그런데 극단은 100% 맞추는 거죠. 그런데 데이터가 주어졌으니까 나는 되도록 이 데이터에 부합하도록 모델을 만들려고 할 거예요.
出席者 1 13:03 这个时候还需要再次划分。必须这样划分才能找到答案。这可以通过某种细节规则来表示模型。那么,这比之前的复杂性更高。同样的道理。啊,我原本想通过直线找到决策边界,但无论如何画都无法找到 100%准确的线。这也是可能的。所以这是什么?一维,也就是说我觉得无法用直线区分,可能需要用二维或更复杂的函数来定义任务边界,因此复杂性就是这样。但是我们的目标是什么呢?就是对于这个任务,希望性能和准确度能够更高。极端情况就是 100%准确。既然给定了数据,我将尽可能地创建一个符合这些数据的模型。
Attendees 1 14:09
근데 간단하게 만드는데 부합하지 않아 틀리는 게 더 있어 그럼 더 복잡하거든요 더 복잡해.
이렇게 할 수가 있겠죠 그럼 점점 모델이 복잡해질수록 정확도는 더 올라가는 은 결과를 얻을 가능성이 있을 거예요.
그런데 그게 꼭 좋으냐 하면 그렇지 않다는 거죠. 그래서 이제 우리가 흔히 얘기하는 오버 피팅 오버 피팅을 우리가 과적합이라고 얘기해요.
네 이게 모델을 이제 학습할 때 중요한 이슈가 되는데 오버 피팅은 뭐냐 하면 내가 앞에서 본 것처럼 어 이거 틀려서 이것까지 맞추려면 더 복잡하게 모델을 정의해야 되겠다.
이렇게 가다 보면 모델이 제공된 학습 데이터에 너무 맞추려고 하게 돼서 오히려 실전에서는 더 나쁜 결과를 초래한다.
그러니까 모델이 더 안 좋아지는 거야. 오히려. 그래서 여기 간단하게 시각적으로 예 우선 리그레션을 하는데 이 x에 대해서 y 값을 예측하려는 문제에 저기 초록색 x표 5 개의 데이터가 주어진 거예요.
자 그래서 x로부터 y를 예측하
出席者 1 14:09 但是即使简单地制作,仍有不符合的地方,所以会变得更复杂。可以这样做。随着模型变得越来越复杂,准确度可能会继续提高。但这是否就是好事呢?不一定。这就是我们通常说的过拟合。是的,这在模型学习时是一个重要问题。过拟合是什么?就像之前看到的,哦,这个错了,为了也能预测这个,我需要更复杂地定义模型。这样发展下去,模型会过度地迎合提供的训练数据,反而在实际应用中造成更糟糕的结果。也就是说,模型反而变得更差。举个简单的视觉例子,在回归问题中,对于给定的 x,想要预测 y 值,这里有 5 个绿色标记的数据点。
Attendees 1 15:22
사이즈로부터 프라이스를 예측하는 모델을 내가 만들고 싶은데 리미어 리그레션에서 하듯이 직선 y는 AX 플러스 b로 가장 적합한 직선을 찾아요.
그러면 이제 제일 왼쪽에 있는 빨간색이 된단 말이죠.
근데 해보니까 좀 만족스럽지 않은 거야. 좀 오차가 많은 것 같아요.
그래서 이 문제는 아 이건 뭔가 2차원적인 곡선에 의해서 어떤 x와 관계가 표현되는 게 맞겠다.
그래서 두 번째 그러면 여기서 오차라는 건 여기서 이런 게 이제 오차겠죠 이런 오차가 이제 줄겠지.
근데 이제 어떤 사람은 완벽주의자라서 난 참을 수가 없다.
그래서 완벽하게 맞춰야 되겠어요. 그러다 보니까 막 3차 4차 하다 보니까 5차 곡선 10차 곡선으로 막 올라갔어요.
그러면 이제 제일 오른쪽에 보이는 것 같이 주어진 데이터에 거의 완벽하게 부합하는 어떤 곡선이 차지해줄 수도 있다 이거죠.
컴플렉스티가 계속 올라가는 거죠. 오른쪽으로 갈수록.
그런데 가장 적당한 건 뭐냐 아마도 여기쯤
我想从 1 15:22 尺寸预测价格模型,就像在线性回归中一样,找到最适合的直线 y = AX 加 b。那么现在就变成了最左边的红色。但是我试了一下,感觉不太满意。感觉误差很大。所以这个问题是,啊,这应该是用二维曲线来表示 x 的关系。那么第二个,这里的误差就是这样的误差,这个误差现在会减少。但是现在有些人是完美主义者,我无法忍受。所以我要完美地匹配。于是就不断地从 3 次、4 次曲线升到 5 次、10 次曲线。那么就像右边看到的,可以几乎完美地符合给定数据的曲线。复杂度不断向右增加。但最合适的是什么呢?大概是在这里
Attendees 1 16:25
되는 거고 이건 오버 피팅이에요. 왜 그러냐 하면 주어진 트레이닝 데이터에는 제일 잘 맞는 것 같이 보이지만 새로운 데이터에 대해서 이런 x에 대해서는 지금 주어진 바가 없는데 예측을 하려고 그러면 얘는 여기라고 예측하겠죠 이거는 좀 잘못된 예측일 가능성이 많은 거든요.
大概是在这里,这就是过拟合。为什么呢?因为看起来在给定的训练数据上最匹配,但对于新数据,对于这个 x,现在没有给定的条件来预测,如果要预测的话,它会预测在这里,这很可能是一个错误的预测。
Attendees 1 16:53
그래서 이 모델의 콤플렉스티를 어느 정도로 하느냐가 이제 중요한 이슈가 될 수 있습니다.
밑에 클래시피케이션도 마찬가지예요.
因此,模型的复杂性程度可能成为一个重要的问题。对于分类问题也是如此。
Attendees 1 17:07
클래시피케이션도 여기 x1 x2 두 개의 값으로 표현되는 데이터들이 이렇게 분포하고 있다.
내가 디시 원 바운더리를 찾으려고 그러는데 앞에서 본 것과 같이 하나의 직선을 가장 적절해 보이는 직선을 보였다.
제일 왼쪽 아직도 틀린 게 많네. 그래서 이 디시션 바운더리가 조금 직선처럼 단순한 건 아닌 것 같아요.
그래서 뭐 2차 3차 이런 곡선을 써서 이렇게 여전히 여기 틀린 것들이 있긴 있죠 그래서 나는 완벽해야 돼.
그래가지고 어마무지하게 복잡한 어떤 식을 이끌어내서 트레이닝 데이터에서 야 이걸 100% 옳게 예측한다.
이렇게 만들면 야 이게 별로 좋은 게 아니 항상 데이터에는 뭔가 약간 아웃라이어 될 얘기 있죠 조금 예외적인 케이스라는 게 섞여 있을 수도 있고 지금 엑스원 x 두 개의 값으로 데이터를 표현했지만 이것만으로는 약간 정보가 부족해서 완벽하게 달라지지 않을 수도 있고 여러 가지 이유가 있는데 어쨌든 주어진 데이터를 가지고 내가 판단을 내리게 하는 데 있어서
对于分类问题,这些数据由两个值 x1 和 x2 分布。我想找到决策边界,就像之前看到的那样,找到一个看起来最合适的直线。左边还有很多错误的点。看来决策边界不仅仅是一条简单的直线。因此,我可能会使用二次或三次曲线,尽管这里仍然存在错误的点。我想要完美。我会创建一个极其复杂的公式,在训练数据中 100%准确地预测。但这并不是一个好方法。数据中总是会存在一些异常值或特殊情况,可能仅用两个 x 值表示的数据信息不足,无法完美区分。无论如何,我的目标是基于给定数据做出判断。
Attendees 1 18:15
트레이닝 데이터에 너무 지나치게 맞추려고 하는 것은 오버 피팅 과적합이 일어나서 결국 그 모델은 나빠질 수 있다.
이게 맞는 거예요.
与会者 1 18:15 过度拟合训练数据会导致模型变差。这是正确的。
Attendees 1 18:28
네 그래서 이걸 우리가 다양한 컴플렉시티에 대해서 여기 x 축이 컴플렉시티예요 컴플렉시티가 내가 모델을 점점 복잡하게 만들면 트레이닝 데이터에 대해서는 에러가 계속 줄이기 할 거예요.
어쨌든 틀린 걸 하나라도 안 틀리게끔 막 맞춰가는 거니까.
그런데 학습을 한 후에 테스트 데이터 새로운 데이터를 가지고 예측을 하려다 보면 어느 정도까지는 이게 성능의 개선을 계속 보이겠지만 너무 지나치게 오버 피팅이 되는 시점으로 넘어가게 되면 오히려 더 복잡해진 과적합된 모델이 더 많은 에러를 내게 되는 정확도 퍼포먼스가 더 떨어지는 그런 결과를 내게 된다는 거죠.
오버 피팅을 방지하는 여러 가지 방법들 이런 것들이 또 이슈가 돼요.
네 일반적으로 말하는 성능을 얘기할 때 클래스피케이션 같은 액트러시가 이제 가장 대표적이고 단순한 거죠.
네 이 그래프는 앞에 거와 달리 이건 모델의 컴플렉시티가 이제 달라질 때 어떻게 달라지느냐를 보여주는 거고 네 이건 일반적으로 학습 곡선이라고 그래서 우리가
与会者 1 18:28 是的,所以我们对于复杂度,这里的 x 轴是复杂度。如果我使模型越来越复杂,在训练数据上的错误会持续减少。无论如何,就是为了尽可能地避免出错。但是在学习之后,当用新的测试数据进行预测时,在某个程度上性能会持续改进,但如果过度拟合,模型变得过于复杂,反而会导致更多错误,性能下降。这就是为什么要防止过拟合的各种方法成为一个问题。通常在谈论性能时,分类的准确率是最典型和简单的指标。这个图表与之前的不同,展示了模型复杂度变化时的情况,这通常被称为学习曲线。
Attendees 1 19:45
까 제일 처음에 학습의 개념에 대해서 얘기할 때 뭐 많은 경험을 할수록 더 잘하게 된다 이런 거잖아요.
데이터로 놓고 보면 트레이닝 데이터가 많아지면 많아질수록 더 정확한 모델이 얻어져야 되겠다 그런 거죠.
그래서 우리가 실제로는 1만 개쯤 데이터를 가지고 있지만 학습이 이게 좀 제대로 되는 거야.
이런 걸 좀 살펴보기 위해서는 데이터를 일부러 10개만 가지고도 만들어보고 100개만 가지고도 만들고 이렇게 해서 변화를 볼 수가 있어요.
그럼 그 변화의 추이는 이런 식으로 돼야 되는 거죠.
더 많은 데이터를 사용해서 모델을 만들수록 모델의 퍼포먼스는 올라간다.
저도 올라간다. 이렇게 돼야. 네 그런데 위에 있는 빨간 선은 뭐냐 하면 요거는 트레이닝 데이터에 대한 스코어예요.
그래서 트레이닝 데이터에 대한 스코어는 여기서 중요한 건 지금 이 곡선이고 위에 있는 건 뭐냐 하면
当参与者在 19:45 谈论学习概念时,会说得多多练习就会越来越好。从数据的角度来看,训练数据越多,就应该获得更准确的模型。因此,尽管我们实际上有大约 1 万个数据,但要确定学习是否真正有效,我们可以故意只用 10 个数据制作模型,再用 100 个数据,这样就可以观察变化。这种变化趋势应该是这样的:使用越多的数据来构建模型,模型的性能就会越高。上面的红线是什么?这是针对训练数据的分数。训练数据的分数,现在重要的是这条曲线,上面的是什么?
Attendees 1 20:43
아니 왜 더 많은 데이터를 하는데 성능이 더 나빠져 이제 생활할 수는 게 당연히 그렇죠 왜냐하면 저 위에 거는 트레이닝 데이터 학습한 걸 트레이닝 데이터에 가서 확인하는 거니까.
극단적으로 보면 만약에 내가 한 개의 데이터가 있다.
그럼 답을 맞추는 모델을 만드는 건 너무 쉽겠죠 그렇죠 만약에 내가 리그레션 하는데 두 개의 데이터가 있다.
그럼 100% 정확한 직선을 쉽게 만들어줘. 데이터가 3개 4개 올라가면 정확히 맞추기가 점점 어려워지다.
데이터가 많아지면 많아질수록 일반적인 애는 살짝 늘어날 수가 있을 거예요.
그래서 일반적으로는 이제 트레이닝의 스폰은 이런 식으로 되는 거고 우리가 이제 주목하는 건 새로운 데이터에 대해서 과연 승리 한상이 되고 있느냐 이걸 이제 봐야 된다.
성능을 측정하는 그 방식도 트로폴 스퍼치티브 이런 걸 기반으로 한 프리시전 리콜 아시 다양한 것들이 있어요.
이런 것들을 우리가
参与者在 20:43 说:为什么使用更多数据反而性能变差了?这是很自然的。因为上面那条线是在训练数据上验证学习效果。从极端情况来看,如果只有一个数据,创建一个能够匹配答案的模型就太容易了。比如在回归中,如果有两个数据点,就可以轻松地创建一条 100%精确的直线。当数据点增加到 3 个、4 个时,准确匹配就变得越来越困难。随着数据量增加,泛化能力可能会稍微提高。所以通常训练的进展是这样的,我们现在关注的是在新数据上是否能获得胜利。性能测量方式也有各种方法,如基于精确率、召回率等指标。
Attendees 1 21:49
사례들을 나중에 보게 됩니다. 네 그다음에 성능을 측정할 때 또 한 가지 보통 이야기하는 것 중에 하나가 네 결국은 데이터를 준비해서 프리 프로세싱 한 다음에 트레이닝 데이터로 학습하고 테스트 데이터로 검증하는데 어느 걸 트레이닝 데이터로 하고 어느 걸 학습 검증 데이터로 할 거냐를 결정해야 되겠죠.
예를 들어서 이만큼 전체 내가 답을 아는 데이터 XY를 아는 데이터가 있는데 뭐 예를 들면 1천 개가 주어졌다고 해야 되죠.
그럼 그중에 나는 800개 200개 남겨놓고 800개로 학습을 하겠다.
이건 트레이닝 데이터가 되는 거예요. 얘는 이제 검증을 위해 남겨놓은 테스트 데이터가 되는 거죠.
그런데 데이터 자체에 여러 가지 예외적인 것도 있고 하다 보니까 어느 걸 가지고 내가 학습을 했느냐에 따라서 학습 모델이 달라질 수 있고 그러면 결과로 만들어진 모델이 정확도는 달라질 수가 있어요.
与会者 1 21:49 我们稍后会看到这些案例。是的,在测量性能时,通常会讨论的另一件事是,在准备好数据并进行预处理后,使用训练数据进行学习,并用测试数据进行验证,需要决定哪些数据用于训练,哪些数据用于学习验证。例如,假设我们有一个总共知道答案的 XY 数据集,比如给出了 1000 个数据点。那么,我可以保留 800 个用于学习,这就是训练数据。其余 200 个则作为用于验证的测试数据。然而,由于数据本身存在各种异常情况,根据我们用于学习的数据不同,学习模型可能会有所不同,因此最终生成的模型的准确性也可能会有所不同。
Attendees 1 22:50
근데 데이터는 어차피 딱 주어진 게 있는데 내가 이걸 선택해서 했느냐 아니면 이걸 선택해서 했느냐 이걸 선택하는 거냐에 따라서 정확도가 다 달라질 수 있으니까 일반적으로 어떻게 하냐 하면 k 계로 데이터를 나눈 다음에 서로 다른 조합으로 케 번을 측정하는 다 k 번의 학습을 수행한 다음에 각각의 어떤 퍼포먼스를 측정해서 평균 낸다.
그런 걸 이제 k 폴드로 크로스 밸리데이션을 한다.
이렇게
与会者 1 22:50 但是,由于数据是固定的,选择哪些数据进行学习会影响准确性,因此通常的做法是将数据分成 k 份,然后使用不同的组合进行 k 次测量,执行 k 次学习,并测量每次的性能,然后取平均值。这就是所谓的 k 折交叉验证。
Attendees 1 23:31
네 하이퍼 파라미터라는 면 우리가 보통 이제 모델을 학습한다.
아까 본 것처럼 미션 바운더리를 얻는데 이런 직선의 감정식으로 드시는 분들을 얻어서 예수로를 이 판별하기 학습이 됐다.
그러면 이 학습 모델을 나타내는 건 결국 요 숫자가 뭐냐 하겠죠 네 요게 우리의 파라미터 이 모델은 두 개의 숫자에 의해서 네 어떤 직선을 나타내는가 그 함수 또는 모델이 결정 되는 거고 두 개의 파라미터를 학습하는 거다.
이렇게 보면 되는 거죠. 그런데 우리가 학습을 어떻게 하느냐를 결정하는 것 중에 모델을 어떤 걸 할 거냐라든지 콤플렉스티 어떻게 하느냐 이런 등등을 결정하는 이 모델 자체의 파라미터가 아닌 학습 과정의 파라미터가 되 있어요.
예를 들면 우리가 이제 바로 다음 주부터 그레디언 디센트 이런 것을 이제 이야기할 텐데 이거는 파라미터로 표현되는 어떤 모델의 파라미터 값을 데이터를 바탕으로 조금 조금 조정해 나가는
与会者 1 23:31 是的,就超参数而言,我们通常会学习模型。就像刚才看到的那样,获得任务边界,使用这种直线的情感方程式来获取,以便学习判断。那么,学习模型最终代表什么呢?是这些数字。是的,这是我们的参数。这个模型由两个数字决定,即如何表示一条直线,或者说这个函数或模型是如何确定的,我们正在学习这两个参数。就是这样看的。但是,在决定我们如何学习时,会考虑诸如选择什么模型,复杂性如何等等,这些不是模型本身的参数,而是学习过程的参数。例如,从下周开始,我们将讨论梯度下降,这是基于数据逐步调整模型参数值的学习过程。
Attendees 1 24:39
그런 학습이 진행되는 건데 그때 예를 들면 조정을 얼만큼씩 할 거냐 그런 걸 결정하는 상수가 있을 수 있어요.
러닝 웨이트라고 이게 어떻게 설정되느냐에 따라서 학습이 좀 빨리 될 수도 있고 좀 천천히 될 수도 있고 혹은 잘못될 수도 있고 그다음에 아까 우리가 컴플렉스티 얘기했죠 모델이 너무 컴플렉스한 건 오버 피팅이라는 다 그런 얘기를 했는데 그러면 오버 피팅이 안 일어나게끔 컴플렉스티가 얼마 이상 안 되게 좀 제한하는 방법이 없냐 우리가 하는 방법 중에 레귤러라이제이션 이 있어요.
데 얼마나 강하게 레귤러레이션을 하느냐를 우리가 또 어떤 상수로 결정해서 알고리즘을 수행할 수가 있습니다.
이런 거에 따라서 학습 과정이 달라지고 학습 결과 모델이 달라지고 이렇게 한다는 거죠.
그래서 그런 학습 과정 에 영향을 미치는 그런 파라미터는 우리가 하이퍼 파라미터라고 얘기하고
与会者 1 24:39 这种学习正在进行,比如说要调整多少,可能会有一个决定这个的常数。学习率,根据它的设置,学习可能会更快或更慢,甚至可能出错。然后,我们之前谈到复杂性,模型过于复杂会导致过拟合,对吧?那么,有没有办法限制复杂性,防止过拟合?我们使用的方法之一是正则化。我们可以通过某个常数来决定正则化的强度,并执行算法。这样,学习过程会发生变化,学习结果的模型也会不同。因此,这些影响学习过程的参数,我们称之为超参数。
Attendees 1 25:35
우리가 모델을 학습한다. 그러니까 러닝 혹은 트레이닝 한다고 했을 때는 네 이 모델 자체를 나타내는 파라미터를 구하는 과정이라면 그런 하이퍼 파라미터를 적절하게 우리가 설정하는 과정을 우리가 하이퍼 파라미터 튜닝을 합니다.
当我们学习模型时,当我们说学习或训练时,实际上是在获取描述模型本身的参数的过程,如果适当地设置这些超参数,我们就进行超参数调优。
Attendees 1 25:57
네 여기 보면 뭐 컨볼루셔널 뉴라이트 이거는 이미지를 처리하기 위한 딥러닝 모델의 대표적인 거죠.
이 경우에는 모델의 필터라고 부르는 거죠. 사이즈를 다양하게 설정할 수 있는데 그런 걸 어떻게 설정하느냐에 따라서 그 모델이 달라지니까 이런 걸 포함해서 다양한 파이초 파라미터라는 것들이 알고리즘마다 있을 수 있어요.
네 끝에 두 개는 딥러닝 모델 나중에 우리가 끝에 한 2, 3주 정도 다루게 될 건데 수치로 표현되는 데이터 그래서 우리가 아까 뭐 2 디멘전 3디멘전 하면서 이제 이렇게 그래프에 표현하고 했는데 우리가 이제 다루는 건 그런 데이터뿐만 아니라 우리 이미지 텍스트 막 이런 것들이 있잖아요.
그게 딥러닝 모델을 위한 몇 가지 이제 이야기를 할 건데 예서 이미지를 다루는 그런 모델은 이미지는 투디맨 저널라는 데이터 그렇죠 그래서 대표적인 게 컨볼루셔널 뉴럴리트 CNN이 있고 CNN은 이런 널한 픽셀 값들이 x로 주어지면 나는 클래스가 뭐냐라는 걸 아웃풋으로
看这里,卷积神经网络是处理图像的深度学习模型的代表。在这种情况下,它被称为模型的滤波器。可以设置不同的大小,根据如何设置,模型会有所不同,所以每种算法都可能有各种超参数。后面我们会用大约 2-3 周的时间讨论深度学习模型。我们不仅处理数值数据,还处理图像、文本等。对于深度学习模型,我要讨论几个问题。处理图像的模型是处理二维数据,代表性的是卷积神经网络(CNN)。当给定像素值 x 时,CNN 的输出是类别。
Attendees 1 27:12
내게끔 하는 그런 모델이고 복잡한 모델이에요. 대량의 파라미터로 이 모델을 어떻게 설정하느냐에 따라서 예를 들면 내 모델은 100만 개를 활용될 것으로 정의됩니다.
신경망을 기반으로 한 그런 모델인데 이 모델은 이제 컨볼루션이라는 그런 과정을 수행하는 부분들이 여러 단계에 있고 그리고 나서 우리가 뉴럴 네트웍이라고 일반적으로 부르는 그런 단계 를 거쳐서 어떤 클래스가 아웃으로 내게 되는 그런 모델이죠.
컨볼루션이라는 것은 이미지 2차원적인 특징을 잘 잡아낼 수 있도록 하는 어떤 인사 그런 것들이 구현된 모델이 있고 대표적인 거 두 가지만 간단하게 썼어요.
그다음에 텍스트를 다루는 경우가 있을 수 있죠. 근데 보통 우리가 시퀀셜한 데이터를 다루는 건데 텍스트라는 건 단어들의 시퀀스니까 그러면 예를 들어서 x로부터 y를 이렇게 예측하 또는 결정하는 그런 모델이 있는데 이제 인풋이 하나 x 하나만 즉 한 단어만 있는 게 아니라 단어들의 시퀀스가 주어집니다.
这是一个具有大量参数的复杂模型。根据模型的设置方式,例如,我的模型被定义为将使用 100 万个参数。这是一个基于神经网络的模型,它包含多个卷积过程,然后通过我们通常称为神经网络的阶段,最终输出某个类别。卷积是为了很好地捕捉图像的二维特征而实现的模型。我简单列举了两个代表性的例子。接下来,可能会处理文本。通常我们处理的是序列数据,因为文本是单词的序列,所以,例如,从 x 预测或决定 y,输入不仅仅是一个单词,而是给出了一系列单词。
Attendees 1 28:25
y도 단어들의 시퀀스로 아웃이 되는 거예요. 그 예를 들어서 어떤 한 언어에 단어들의 시퀀스가 들어가면 다른 언어의 단어들이 시퀀스가 나온다.
그러면 그건 자동 번역이 되는 거고 어떤 질문 문장이 들어가면 거기에 대한 답변 문장이 나온다고 그러면 또 질의응답 하는 시스템을 해야 되겠죠 자 이럴 때는 모델의 형태가 굉장히 다양 하 기본적으로는 뭐냐 하면 어떤 특정한 단어일 때 어떤 특정한 다른 단어가 아웃풋으로 나오는 게 아니다.
같은 단어에 대해서도 앞에 어떤 말들이 있은 다음에 그 단어가 있었느냐에 따라서 이 아웃은 달라지는 게 맞겠죠 그렇죠 시퀀스 전체 보고서 가 번역을 하면서 답을 해야 되는 거니까 그래서 x에 대해서 y가 1차적으로 매핑이 되는 게 아니라 여기에 중간에 이런 이전 단어로부터 얻은 정보가 피드백 되는 그런 구성으로 뒷너닝 모델이 저희가 그런 걸 이제 리커런트 네트웍이다.
이렇게 얘기하고 인풋아웃이 계산되는 과정을 쭉 그래서 우리가 펼쳐볼 수가 있는데 펼치게 되면
输出也是单词的序列。例如,当一种语言的单词序列输入时,另一种语言的单词序列就会输出,这就是自动翻译。如果输入一个问题句子,就会得到相应的回答句子,这就是问答系统。在这种情况下,模型的形式非常多样。基本上,当特定单词出现时,输出并不是另一个特定单词。对于同一个单词,根据前面的上下文不同,输出也会不同。因为要查看整个序列并进行翻译或回答。所以 x 并不是直接映射到 y,而是中间会有从前面单词获得的信息反馈,这种模型我们称之为循环神经网络。输入输出的计算过程可以展开。
Attendees 1 29:36
이제 그래서 n개의 단어의 시퀀스가 들어온다고 그러면 이 n 개의 레이어로 계산이 진행되는 그런 아니 형태가 되거나 그래서 이런 경우는 또 어떻게 학습이 진행되는지 그런 것들을 우리가 다루게 네 마지막으로 우리가 앞서 라이브러리들 쭉 얘기하면서 넘파이 판다스 뭐 이런 거 했고 그래프 그리는 데까지 얘기하고 여기 얘기를 아직 안 했죠 지금 머신 러닝의 기본적인 개념과 용어 이런 걸 좀 얘기했으니까 우리가 이제 사이클 런을 한동안 좀 쓸 거예요.
그 우리가 이제 여러분들이 프로그램 하는 거에 대한 단계는 약간 이렇게 보는 거예요.
처음에는 어떤 모델 알고리즘을 이제 얘기하면 그걸 구현할 때 처음에는 맨바닥에 구현을 할 백지 상태에 그냥 파이션 코드로 상세한 계산을 하거나 이 다 구현하는 거지.
그 다음에는 라이브러리를 쓸 거예요.
参会者 1 29:36 现在,假如有 n 个单词的序列进来,那么它会通过 n 个层进行计算,或者变成这种形式。对于这种情况,学习又是如何进行的?我们将探讨这些内容。最后,我们之前讨论了库,如 NumPy、Pandas 等,并绘制了图表。现在,我们已经讨论了机器学习的基本概念和术语,接下来我们将使用 Scikit-learn 一段时间。对于我们编程的步骤,可以这样看:首先,当我们谈论某个模型算法时,最初是在白板状态下用 Python 代码实现详细的计算。
Attendees 1 30:41
예를 들어서 신경망을 구현한다고 그러면 신경망을 여러분들이 직접 x를 어떻게 계산하고 다 코딩해서 계산 디테일을 다 하는 거고 그다음에는 라이브러리에서 신경망 모델 쓱 가져와 가지고 어떤 함수를 호출하고 막 이러면서 학습을 진행하는 거죠.
그래서 처음에 이제 그냥 라이브러리 같은 걸 쓰지 않고 할 때는 파이션 넘파이 이런 것들만 가지고 이제 행렬 계산하고 이런 거 하는 거고 그다음 단계에서 사이클 원을 쓴다는 거는 여기서 이제 간단히 예를 가지고 우리가 개념만 볼 건데 여기서 제공하는 여러 가지 도구 클래스 이런 것들을 써서 이제 하겠다 이거죠.
그 내용에 대한 이해는 여러분들이 하고 디테일을 다 여러분들이 프로그래밍을 하는 것은 이제 아닐 수 있게 되는 거지.
그 사이클러는 뭐냐 하면 머신 러닝 라이브러리고 타위성 기반의 무슨 말인가 이 뭐 클래시피케이션 리그레션 클러스터링 등등등 이런 걸 하는 다양한 알고리즘 이 이제 구현이 돼 있고 그래서 갖다 쓰면
参会者 1 30:41 例如,如果要实现神经网络,你需要亲自计算 x 并编码所有计算细节。然后,从库中调用神经网络模型,通过调用某些函数来进行学习。所以,最初不使用库时,只使用 Python 和 NumPy 进行矩阵计算。下一个阶段是使用 Scikit-learn,利用它提供的各种工具和类。这意味着你不需要了解所有细节就可以编程。Scikit-learn 是一个机器学习库,基于 Scikit,包含各种算法,如分类、回归、聚类等,可以直接使用。
Attendees 1 31:48
앞서 우리가 오버 피팅이 어쩌고 프르 프로세스 이런 얘기를 했잖아요.
그런 것들과 관련된 여러 가지 함수나 도구들이 제가
之前我们讨论过过拟合和预处理等内容。与此相关的各种函数和工具,我
Attendees 1 32:01
여기 사이트 가서 아나콘다를 설치했으면 다 이제 이미 설치가 돼 있을 건데 내용을 좀 보려면 이 사이트에 가서 자료들을 좀 참고하면 되고 네 기본적인 유저 가이드 튜터리r 이런 게 있으니까 전체적인 이제 개념을 보려면 이런 걸 좀 읽어보는 경우가 나쁘지는 않겠죠 실습이 진행되면서 특정한 클래스를 쓴다 특정한 함수를 쓴다.
이럴 때는 우리가 이제 실습에 필요한 건 대부분 소개를 하고 가는 하겠지만 그거에 특정한 파라미터는 이거 뭐 어떻게 설정되는 거지?
의미는 뭐지? 이런 걸 여러분들이 확인할 필요가 있을 때는 당연히 API 레퍼런스를 가서 보면 거기에 상세한 것들이 다 정리돼 있어요.
그런 건 항상 여러분들이 그냥 참고를 하면 되겠어요.
가장 기본적인 형태를 한번 보겠어요. 내가 다루려면 테스크는 이런 거다.
x로부터 y를 예측하려면 그거다 겠죠 이런 함수를 내가 만들려고 해요.
x는 뭐냐 3개의 값으로 표현되는 데이터예요.
如果你已经在这个网站上安装了 Anaconda,那么现在应该已经安装好了。如果想查看内容,可以去这个网站参考资料,是的,有基本的用户指南和教程,所以如果想了解整体概念,阅读这些可能不错。随着实践的进行,使用特定的类或特定的函数时,我们大概会在实践中介绍大部分内容,但如果你想确认特定参数是什么,或其意义是什么,那么当然可以去查看 API 参考文档,那里会详细整理这些信息。这种方式你们可以随时参考。我们来看最基本的形式。我想处理的任务是什么。从 x 预测 y,就是这样。我想创建这样的函数。x 是什么?是由 3 个值表示的数据。
Attendees 1 33:08
c 디맨드라는 게 있다죠 y는 바이너리 클래시피케이션을 하는 거예요.
이런 경우에는 이런 경우에는 이를 맞추려고 하는 거예요.
첫째 데이터를 준비해야 돼요. 그래서 가상으로 지금 이런 데이터가 있다.
여기 보면 넘파이 어레이로 x와 y를 지금 설정했죠 이게 무슨 뜻이겠어요?
5 개의 데이터가 있는 거예요. 지금 첫 번째 데이터는 오케이 x 값이 0 1 1인 거는 1번 클래스다.
밑에는 101인 건 0번 클래스다. 이렇게 쭉 준 거죠.
그럼 x는 지금 5바 3의 어레이일 거고 y는 사이즈 5의 벡터인 거겠죠 자 그러면 학습은 어떤 걸로 학습을 할 건가?
우리가 아직 지금 다루지 않았지만 디시전 트리를 학습을 해야 돼요.
그러면 사이킬런에 가서 보면은 디시전 트리 학습 알고리즘이 구현돼 있어요.
어떻게 쓰라? 이렇게 다 제공이 돼 있다 이거지. 그래서 디시전 트리도 여러 가지가 있지만 그중에서 디시전 트리 클래시파이어라는 이름의 요 클래스를 우리가 사이트에서 가져다 쓸 수 있습니다.
听众 1 33:08 有一个叫做 C 需求的东西,Y 是在进行二元分类。在这种情况下,就是要匹配这个。首先需要准备数据。现在假设有这样的数据。如你所见,我们已经用 NumPy 数组设置了 X 和 Y。这是什么意思呢?现在有 5 个数据。第一个数据是 OK,X 值为 0 1 1,表示第 1 类,下面是 101,表示第 0 类。就是这样给出的。那么 X 现在是一个 5x3 的数组,Y 是一个大小为 5 的向量。那么,我们将用什么来学习?虽然我们还没有讨论,但需要学习决策树。在 Scikit-learn 中,决策树学习算法已经实现。如何使用?都已经提供好了。决策树有很多种,但我们可以在网站上使用这个叫决策树分类器的类。
Attendees 1 34:29
과제를 쓰는 방법은 인스턴스를 이렇게 만들고 이름을 아무거나 붙여도 되겠죠 그 CF라고 이름을 붙였어요.
디시전 트리 클래시파이 인스턴스를 만든 다음에 거의 모든 클래스에 핏이라는 메서드가 있어요.
데이터에 피팅을 해라 이런 뜻이에요. 그러니까 이 데이터로 이 모델을 학습하라 이거죠.
어떻게 약속을 하는 건가 하는 걸 우리는 이제 뭐 볼 거예요 공부를 하겠지만 예컨대 요거 같은 거 여러분들이 직접 이걸 이제 코딩을 하는 건 아닙니다.
어떤 거는 여기에 직접 코딩을 할 거고 이건 그냥 라이브를 쓸 거예요.
그러니까 여러분들이 해야 되는 건 적절한 알고리즘 적절한 클래스를 선택해서 라이브러리를 가지고 인스턴스를 만든 다음에 데이터를 주고 x와에다가 배송이 돼 있죠 네 XY 주고 디시전트리 클래시파이 알고리즘이 핏 하면은 얘가 디시전트리를 만들어요.
내부적으로 어떤 표현으로 만들어질 거예요 네 그러면 만들어진 디시션 트리를 쓰는 거는
听众 1 34:29 编写作业的方法是创建这样的实例,可以随意给它命名,我给它取名为 CF。创建决策树分类器实例后,几乎所有类都有一个叫做 fit 的方法。意思是在数据上拟合,也就是用这些数据来训练这个模型。我们将会学习它是如何约定的。例如,你们不会直接编码这个,有些地方会直接编码,有些地方会直接使用库。所以你们需要做的是选择合适的算法和合适的类,然后用库创建实例,再把数据传给 X 和 Y,决策树分类器算法执行 fit 后,它会创建一个决策树。内部会以某种方式表达,那么接下来就是使用这个创建好的决策树。
Attendees 1 35:45
우선 이게 잘 만들어졌나 테스트하기 위한 데이터를 우리가 이렇게 설정을 한번 해보죠.
두 개의 새로운 데이터 앞에 있지 않은 데이터 예를 들면 000 같은 데이터는 없었어요.
000이라는 데이터와 110이라는 새로운 데이터를 가지고서 렉스 테스트 그다음에 그것의 정답 안 가르켜준 정답이 있어요 y 정답은 이 경우엔 0 0 1이에요.
이 두 개를 갖고 만들어진 모델을 확인 모델을 확인한다는 거는 모델이 만들어지면 얘는 결국 하고자 하는 게 x부터 y 예측하는 거니까 내가 이제 새로운 x 집어넣을 때 이게 과연 잘 나오나 보는 거죠.
모델을 사용하는 건 이것도 마찬가지 거의 대부분의 모델이 프리딕트라는 메서드를 가지고 있어요.
그래서 여기 밑에 보면 학습된 모델에 프리딕트 메서드 를 새로운 데이터로 호출하면 얘가 예측 값을 반환하 그렇게 구성이 되어 있습니다.
与会者 1 35:45 首先,让我们来测试一下这是否设置得很好。我们设置了两个新数据,以前没有的数据,例如没有 000 这样的数据。我们使用 000 和 110 这两个新数据进行测试,还有它的答案(未标记的答案)。在这种情况下,答案是 0 0 1。确认模型意味着模型一旦建立,它的目标是从 x 预测 y,因此当我们输入新的 x 时,看看它是否能正确预测。使用模型几乎所有模型都有预测(predict)方法。在下面,您可以看到已训练的模型通过调用预测方法并使用新数据,它会返回预测值,就是这样构建的。
Attendees 1 36:59
그러면 이제 그러고 나서 예측값을 내가 보면 되는 거 저기 이제 아까 이렇게 머신 러닝 알고리즘이 돌아가서 XY 주어진 데이터로 디시전트를 만들었다 해서 만들었죠 그럼 그다음에는 뭔가 데이터를 새로 주면서 나는 학습된 모델에 프리딕트라는 메서드를 쓰면 얘가 이걸 딱 내놓는 네 지금 이거 이제 해보면 요 이전 가 실제로 해보면 이거에 대해서 0 1이라는 아웃풋을 내는 걸 알 수가 있어요.
이 말은 000의 클래스는 0으로 예측 1 10의 클래스는 1로 예측이에요.
정답을 우리가 알고 있다면 비교해 볼 수가 있겠죠 같네 그러면 두 개인데 두 개 다 맞췄으니까 100% 내 플러스다.
이렇게 얘기.
与会者 1 36:59 然后,我们看预测值。现在机器学习算法已经根据给定的 XY 数据创建了决策树。接下来,当我们提供新数据时,使用训练好的模型的预测方法,它就会输出结果。实际上,对于之前的情况,它会对 000 输出 0,对 110 输出 1。如果我们知道正确答案,就可以进行比较。由于这两个都预测正确了,所以是 100%准确。这就是这个过程。
Attendees 1 37:51
네 모델마다 알고리즘마다 이 모델이 생긴 거나 형태가 다 다르니까 어떤 거는 예를 들어서 직선으로 나타나는 어떤 모델이라는 건 파라미터들이 뭐냐 그게 바로 모델을 나타내는 거겠죠.
디시션 트리는 이럴 경우엔 이거고 이럴 경우에 이런 식의 어떤 룰로서 표현되는 거니까 이거는 텍스트 형태로 이게 룰에 리스트를 볼 수도 있겠고 근데 뭐 여러 가지 툴들이 있어요.
툴들이 있어서 여기 보면 그래프 비즈라는 이런 라이브러리를 쓰면 학습된 사이클런에서 학습된 모델을 시각적으로 보여주는 그런 것도 있어요.
여기 얘로 학습된 걸 보면 이 우리가 앞서 본 이젠트 같으면 이렇게 학습이 돼 있어요.
여기 보면 네 x 1 x는 지금 x x로 x1 x2 이렇게 아마 돼 있을 거예요.
그러니까 x1이라는 피처 값으로 일단 판단을 하게 모델이 만들어졌어요.
이 값이 0 5다. 작으냐 잡으면 일로 가고 아니면 일로 가는 거예요.
与会者 1 37:51 由于每个模型和算法都不同,有些模型可能以直线表示。什么是参数?这正是描述模型的方式。决策树是这样的情况是这样,那样的情况是那样,用规则来表达。可以用文本形式查看规则列表。还有许多工具,比如使用 GraphViz 库可以可视化在 Scikit-learn 中训练的模型。看这里训练的模型,就像我们之前看到的实例,是这样训练的。这里可能是 x1,x2 等特征值。模型首先根据 x1 特征值进行判断。如果这个值是 0.5,则向一个方向走,否则向另一个方向走。
Attendees 1 39:01
그 바로 밑에 진이라고 써 있는 거는 나중에 이제 실습할 때 우리가 디시전트를 다룰 때 좀 자세하게 얘기하겠지만 간단히 얘기하자면 진이라는 거는 내가 보고 있는 데이터 집단이 얼마나 클래스가 마부잡이로 지금 석계 분열을 나타내는 이 통계적 수치예요.
그래서 지니 값이 0 5에 가까우면 막 섞여 있다는 거고 0에 가까우면 어느 한쪽으로 몰려 있다는 뜻이죠.
지금 뭐냐 하면 048 이렇게 되면 그래 내가 지금 아까 다섯 개의 데이터인가 그걸 가지고 이제 나누기를 할 건데 현재는 클래스 0 1이 섞여 있다.
이 뜻이고 갈르고 나면 지니가 0으로 떨어져 있죠 네 이게 뭐냐 왼쪽으로 오니까 뭐 다 0번 클래스네 오른쪽으로 오니까 다 1번 클래스네 이렇게 됐다는 거예요.
그러면 여기서 더 가를 필요가 없이 그러면 이거는 그래서 0번 이렇게 되면 이거는 1번 클래스에 해당 라고 리즈 하게끔 모델이 만들어진 다는 거죠.
与会者 1 39:01 下面写着基尼指数,我们在后面实践决策树时会详细讨论,但简单来说,基尼指数是描述我正在查看的数据集中类别分布的统计指标。如果基尼值接近 0.5,表示数据混合得很厉害;如果接近 0,表示数据偏向某一类。现在是 0.48,意味着在之前的五个数据中,类别 0 和类别 1 是混合的。分类后,基尼指数会降至 0。当向左时,全是 0 类;向右时,全是 1 类。这样就不需要再进一步分类了,模型会将其判定为 0 类或 1 类。
Attendees 1 40:04
x 1 값에 의해서만 그냥 y 값이 결정되네라고 얘가 이제 알아챈 거예요.
실제 데이터 가서 보면 사실은 이렇게 돼 있죠 x 제로 x1 x2를 보면
与会者 1 40:04 他意识到 y 值仅由 x 值决定。实际上,当您查看数据时,情况是这样的:看看 x 零、x1 和 x2
Attendees 1 40:22
너무 자묘하게 x 1 값이 0이면 예측값은 0이고 1이면 예측값은 1이 되는 게 맞게 보이죠 지금 디시전 트리 알고리즘에 의해서 그런 부분들을 잡아다
与会者 1 40:22 看起来很微妙,当 x1 值为 0 时,预测值是 0,当 x1 值为 1 时,预测值是 1,这是由决策树算法造成的
Attendees 1 40:39
네 오케이. 텐서 플로우에 관해서는 나중에 딥러닝 모델로 가기 전에 보기로 하고 네 요 정도에서 전체적인 큰 그림을 한번 쭉 살펴봤습니다.
혹시 뭐 질문 있는
听众 1 40:39 是的,好的。关于张量流,我们决定在进入深度学习模型之前再看看,是的,现在我们大致浏览了整体的大图。有什么问题吗?
Attendees 1 41:02
아직까지는 우리가 특정 알고리즘을 다루거나 한 건 아니기 때문에 이제 이번 주 실습에서는
听众 1 41:02 因为到目前为止我们还没有处理特定的算法,所以在这周的实践中
Attendees 1 41:14
네 뭘 할 거냐 하면 우리가 지난 시간에 워밍업을 했고 우리가 이제 앞으로 다룰 넘 파일 캔다스 이런 라이브러리와 함께 사이킬런의 아주 기본적인 거를 하나 해보는 정도를 이제 다음 시간에 할 거예요.
그래서 어레이 계산하는 거라든지 뭐 이렇게 테이블 조작하는 거라든지 그다음에 그래프 그리는 거라든지 그다음에 사이킬런을 가지고 어떤 데이터에 대해서 뭔가 모델을 학습하는 거 이런 것들을 간단하게 해보도록 하겠습니다.
네 오늘 여기까지 하겠습니다.
同学们,在上次课程中我们已经热身了,接下来我们将使用 Numpy、Pandas 等库以及 Scikit-learn 的基本功能。我们将进行数组计算、表格操作、绘制图表,并使用 Scikit-learn 对某些数据进行模型学习等简单操作。好的,今天的课程到此结束。
Attendees 1 42:27
지금 3월 5일부터 바꿔야 되는데.
现在需要从 3 月 5 日开始更改。
clovanote.naver.com