ML week3.2
2025.03.20 Thu PM 1:01 ・ 69Minutes 0seconds
ZHANG YIWEN
机器学习第 3.2 周 2025.03.20 周四 下午 1:01 ・ 69 分钟 0 秒 张一文
Attendees 1 00:00
보내주신 분이 가끔 계셔가지고 한 번 더 말씀드리겠습니다.
그래서 이거는 이제 다 하시면 이제 저장하셔가지고 지금 여기 파일 이름이 지금 보시면 루크 3 9분 코드잖아요.
여기 부분을 수정해가지고 이 클래스에 이제 시간대에 올려주시면 됩니다.
参会人员 1 00:00 发送的人偶尔在场,所以我再说一遍。因此,当您完成后,请保存,现在这个文件名如您所见是卢克 3 9 分钟代码。您可以在这个类的时间段中上传。
Attendees 1 00:24
그리고 저쪽 모니터가 하나가 잘 안 보이긴 하는데 그래도 약간 볼 수 있으니까 최대한 천천히 하면서 진행을 하겠습니다.
이번 주는 이제 선형 획이랑 경사강법에 대해서 실습을 진행해 볼 거예요.
听众 1 00:24 虽然那边的显示器有点看不清,但还是可以勉强看到,所以我会尽量慢慢进行。这周我们将实践线性回归和梯度下降法。
Attendees 1 00:47
일단은 이제 경사 법을 이용한 세미션 실시를 먼저 해볼 건데 일단 간단하게 샘플 데이터를 먼저 만들어볼 겁니다.
그래서 여기 보시면 이제 해당 지금 하고자 하는 그 코드의 목적은 지금 보시면 x는 사이즈죠.
그걸로 이제 y를 예측하는 테스크를 수행하는 코드를 만들어 볼 건데요.
여기는 이미 다 제공되어 있죠. 일단 넌 파이는 MP로 불러오고 맥플라림은 PLT로 불러오고 이제 여기서 엑스트레인 데이터셋 같은 경우에는 이제 인풋이 값이고 그리고 인풋이 값인 벡터고 와이트레인 같은 경우에는 타겟 값이 이제 금액이죠.
프라이스 인 벡터입니다. 그래서 이렇게 어레이를 사용을 해가지고 엑스트레인이랑 와이 트레인을 정리를 해줬고 그거를 확인하고 있어요.
그래서 이거는 그냥 실행을 해보면 다음과 같은 결과가 있겠죠.
听众 1 00:47 首先,我们将使用梯度法进行演示,先创建一个简单的示例数据集。正如你们所见,这段代码的目的是使用 x 尺寸来预测 y。这些代码已经准备好了。首先导入 numpy 为 np,matplotlib 为 plt。对于 x 训练数据集,输入是值,是一个向量,而 y 训练数据集的目标值是价格向量。我们使用数组整理了 x 训练和 y 训练,并正在确认这些数据。执行后,结果将如下所示。
Attendees 1 01:54
그리고 이제는 위에서 만든 이 스트레인이랑 와이 트레인을 2차원 형태의 이제 그래프로 표현을 할 수가 있어요.
근데 이제 데이터 포인트를 시각화하는 거는 저번 시간에 배웠었죠.
저번 시간에 저희가 스케터를 사용을 해가지고 산정도를 나타낸다고 배웠습니다.
그래서 아까 앞에서 불러왔던 PLH 라이브러리를 사용을 할 건데 PLT고 스케터죠.
그리고 이제 앞부분에 x 자리랑 그리고 y 자리랑 그리고 마커를 뭘 쓸 건지 나타낼 수 있고 또 색깔을 뭐 할 건지 나타낼 수 있겠죠.
이렇게 4개의 지금 파라미터가 필요한데 위에서 일단 정의를 해둔 거는 저희가 에드 트레인이랑 와이 스트레인 데이터를 만들어 놨어요.
그러면 각각 x랑 y 자리에 스트레인 y 트레인을 넣으면 되겠죠.
그리고 제가 방금 말씀드렸던 게 이제 마커랑 색깔인데 이제 마커는 이렇게 마커로 나타내고 컬러는 이제 c인 약어로 나타내는 거죠.
现在,我们可以将之前创建的应变量和 y 变量用二维图形表示出来。关于数据点的可视化,这是我们上节课已经学过的。上次,我们使用散点图来表示散点图。所以我们将使用之前调用的 PLH 库,即 PLT 和散点图。然后,我们可以在 x 轴和 y 轴位置指定标记和颜色。目前需要 4 个参数,我们已经在前面定义了 X 训练数据和 Y 训练数据。那么,我们可以将 X 训练数据和 Y 训练数据分别放在 x 和 y 位置。我刚才提到的标记和颜色,标记可以这样表示,颜色用 c 的缩写表示。
Attendees 1 03:04
지금 아래 그래프를 보시면 지금 여기서는 마커가 동그라미죠.
그러면 5를 넣어주시면 됩니다. 이렇게 그리고 색깔은 진한 파란색이죠.
그러면 이거는 그냥 블루를 넣어주시면 됩니다.
看看下面的图表,这里的标记是圆圈。那么你可以输入 5。然后颜色是深蓝色,你可以直接输入蓝色。
Attendees 1 03:24
이렇게 해서 실행을 해보면 여기 보시면 이제 하우징 프라이시스는 이제 저희가 타이틀을 정해 줬기 때문에 이렇게 위에 뜨는 부분이죠.
그리고 이제 와 라벨은 프라이스 가격 그리고 x 라벨은 사이즈 이렇게 적어준 게 그대로 나타내는 걸 보실 수가 있습니다.
이건 그래프를 나타내야 되니까 마지막에 PLT 쇼로 마무리해 준다고 했었죠.
그래서 간단하게 이게 해당 그래프는 이제 저희가 방금 생성한 학습 데이터가 어떻게 생겼는지를 간단하게 보여주고 있어요.
그러면 이제 선형 모델을 사용을 해가지고 예측을 한번 해볼 수가 있겠죠.
여기서 이제 주어진 모델은 y는 wx 플러스 b예요.
이제 w는 일반적으로 이제 가중치를 나타내고 b는 이제 통계 쪽에서는 y 절편 이제 머신러닝 쪽에서는 편향 이렇게 나타낼 수가 있겠죠.
그래서 이 모델을 사용해가지고 나타낼 건데 이때 이제 x랑 y는 스칼라 값이죠.
그리고 w랑 b가 학습할 수 있는 파라미터예요.
参会者 1 03:24 如果这样执行,你会看到房价现在已经有了我们设定的标题。现在的标签是价格,x 轴标签是尺寸,就是这样标注的。因为需要展示图形,所以最后用 PLT 显示来结束。这张简单的图表展示了我们刚刚生成的学习数据是什么样子。那么现在我们可以使用线性模型来进行预测。这里给出的模型是 y = wx + b。w 通常表示权重,b 在统计学中是 y 轴截距,在机器学习中称为偏置。我们将使用这个模型,此时 x 和 y 是标量值,而 w 和 b 是可以学习的参数。
Attendees 1 04:36
그래서 여기 보시면 저희는 이제 이 y는 wx 플러스 b 모델을 사용을 해서 y 값을 예측하는 함수를 정의를 해볼 거예요.
지금 보시면 x랑 w랑 b가 이 모델의 이 함수의 파라미터로 들어가 있죠.
그래서 이 자리에는 이제 저희가 사용할 모델을 적어주면 돼요.
간단하게 하면 되겠죠. 위에 써져 있는 그대로 wx 플러스 b를 나타내주면 돼요.
이제 w랑 x를 곱하고 b를 더해주겠죠 이렇게 해서 이제 들어왔던 세 가지 파라미터인 x랑 w랑 b를 사용을 해서 y를 계산을 하고 리턴 y를 해주면 이 y 값을 반환하는 그런 함수가 완성이 되겠죠.
参会者 1 04:36 在这里,我们将使用 y = wx + b 模型来定义一个预测 y 值的函数。你可以看到 x、w 和 b 作为这个模型函数的参数。在这个位置,你只需要写出我们将使用的模型。简单地写出上面写的 wx + b 即可。现在将 w 和 x 相乘,然后加上 b。这样,我们就使用了这三个参数 x、w 和 b 来计算 y,并返回 y 值,这样这个函数就完成了。
Attendees 1 05:26
네 그래서 이 부분도 실행을 해주고 그다음에 이제 저희가 임의의 모델 파라미터를 사용을 해가지고 예측을 한번 해볼 거예요.
일단 초기 가중치를 가중치 w를 100이라고 하고 초기 이제 평형을 10이라고 가정을 해볼게요.
그리고 이제 사이즈 같은 경우에는 엑스트레인 데이터의 첫 번째 함을 가져오고 프라이스 같은 경우에는 와이 프레임 데이터의 첫 번째 장을 가져올게요.
그리고 이제 위에서 이제 정의한 저희가 이제 임의의 파라미터를 정의했었죠.
가중치랑 편향을 가지고 첫 번째 데이터에 대한 이제 예측된 값을 y 값을 예측을 해볼 거예요.
그래서 yh 같은 경우에는 이제 y는 진짜 값이고 원래 이제 주어진 실제 값 그리고 y h 같은 경우에는 이제 저희가 모델 예측이나 이런 걸 통해서 예측된 값이라고 생각을 해 주시면 됩니다.
그러면 저희가 사용할 거는 아까 위에서 정의했던 요 함수를 사용을 해서 하겠죠.
지금 보시면 파라미터 자리가 3개가 들어가야 돼요.
参会人员 1 05:26 是的,然后我们执行这部分,接下来我们将使用任意模型参数进行预测。首先假设初始权重 w 为 100,初始偏置为 10。对于大小,我们将获取 X 训练数据的第一个值,对于价格,我们将获取 Y 帧数据的第一个值。然后,使用我们之前定义的任意参数(权重和偏置)来预测第一个数据的 y 值。所以 y 是真实值,即原本给定的实际值,而 yh 是通过模型预测得到的值。然后我们将使用之前定义的函数。现在可以看到,参数位置需要 3 个。
Attendees 1 06:39
x랑 w랑 e랑 그래서 x랑 w랑 b가 이렇게 들어가야 되는데 지금 보시면 제가 정의를 할 때 w랑 b는 같지만 x는 이 첫 번째 x 트레인의 값을 넣기로 되어 있어요.
그러면 x 대신에 이 자리에다가 이제 스트레인의 첫 번째 항을 넣으면 되겠죠.
参会人员 1 06:39 x、w 和 e,所以 x、w 和 b 应该是这样的,但现在看来,我定义的 w 和 b 是相同的,x 是第一个 X 训练值。那么 x 的位置就应该放入 X 训练的第一个值。
Attendees 1 07:06
이렇게 해서 실행을 하게 되면은 이제 y h의 값이 나오겠죠.
실행을 해보면 이렇게 그러면 이 의미는 무엇이냐면 사이즈가 1.8이고 프라이스가 430이면 이때 이제 예측 값은 190이라는 겁니다.
이제 프라이스는 이제 방금 저희가 정리한 요 함수에는 이제 영향을 주지 않지만 실제 값과 이제 예측된 값의 차이가 있다는 걸 확인할 수가 있어요.
그러면 이렇게 약간 예측을 잘 못하는 함수를 좀 조절하기 위해서 이제 파라미터랑 파라미터를 조절하면 좋겠죠.
그래서 이제 그때 사용되는 게 일반적으로 이제 비용 함수입니다.
여기서 보시면 이제 수업 시간에 아마 배웠겠지만 이제 해당 식은 이제 평균 제곱 오차를 어떻게 구하는지를 표현할 식이죠.
간단하게 이제 보면은 이제 와 h은 아까 제가 말씀드렸듯이 예측 값이고 이제 y는 실제 값이라고 했죠.
执行这个操作后,就会得到 y h 的值。执行后,会是这样。这意味着什么呢?如果尺寸是 1.8,价格是 430,那么此时预测值是 190。现在价格对我们刚才整理的这个函数不产生影响,但我们可以确认实际值和预测值之间存在差异。那么为了调整这个不太准确的预测函数,我们可以调整参数。因此,通常会使用代价函数。在这里,你可能在课堂上已经学过,这个式子表示如何计算平均平方误差。简单来说,h 是我之前提到的预测值,y 是实际值。
Attendees 1 08:05
그리고 이제 각각 아 번째니까 아 번째의 실제 값과 예측 값에 이제 차이를 제곱을 한 다음에 그걸 모두 더해준 다음에 이제 앞에 m이 있으니까 총 이제 x 트레인의 값이 MB겠죠.
그만큼을 나눠주면 됩니다.
然后对于每一个,哦,第 a 个,就是第 a 个的实际值和预测值的差异,取平方,然后把它们全部相加,前面有 m,所以是总的 x 训练的值是 MB。然后除以这个数值就可以了。
Attendees 1 08:25
그래서 이제 식을 저희가 수직으로 구현을 해볼 건데요.
x 같은 경우에는 이제 크기가 m이 넌 파이 배열이죠.
여기도 이제 함수 이름은 컴퓨터 코스트고 파라미터가 4개가 들어가네요.
现在我们将垂直实现这个公式。对于 x,其大小是 m 的 numpy 数组。这里函数名是 compute_cost,有 4 个参数。
Attendees 1 08:47
그리고 이제 엑셀의 쉐입을 넣으면 이제 그 트레이닝 예제의 개수가 몇 개인지 알 수가 있겠죠.
샘플의 개수 그리고 코스트는 이제 영어로 초기화를 해줄 거예요.
그리고 이제 포문을 사용을 해가지고 각각 이제 하나의 x에 대한 값들을 계산을 해서 모두 더해주는 식을 구현을 해볼 건데 여기 보시면 이제 선형 함수를 활용을 해가지고 각 x에 대한 예측과 y를 계산해 보겠죠.
여기도 아까 위에서 했던 선형 함수 같은 경우에는 w 곱하기 x 플러스 b였죠.
근데 여기서 보시면 지금은 x는 단일 값이 아니니까 각 아에 대한 값이겠죠.
그러면 여기다가 아이를 넣어주면 되죠. 이렇게 되면은 이제 이 포문이 돌면서 아 값에 이제 값이 하나하나 들어가게 되고 그러면 x의 특정 항에 대한 이제 yh을 구할 수가 있겠죠.
그리고 이제 그 예측된 y랑 실제 와 값의 차이에 제곱을 한 다음에 모두 더해주면 됩니다.
그러면 예측된 y가 뭐라고 했죠? 와 h이죠.
然后在放入 Excel 的形状后,我们就可以知道训练示例的数量。样本数量,并且成本将以英语初始化。然后我们将使用 for 循环来计算每个 x 的值并将它们相加。在这里,我们将使用线性函数来计算每个 x 的预测和 y。正如我们之前所做的,线性函数是 w 乘 x 加 b。但在这里,x 不再是单个值,而是每个 a 的值。那么我们将把 a 放入其中。这样,当 for 循环运行时,a 值将逐一进入,然后我们可以得到 x 的特定项的 yh。然后,我们将计算预测的 y 和实际 y 值之间的差的平方,并将其全部相加。那么预测的 y 是什么?是 h。
Attendees 1 10:02
그리고 실제 y 실제 y인데 여기도 지금 아까 아 번째 x에 대한 y h을 구했으니까 여기도 제 y 값을 가져와야 되겠죠.
이렇게 해서 차이를 구하고 얘를 제곱한다고 했으니까 이렇게 해주면 되겠죠.
그리고 기존 코스트 값에 이 기호를 사용해서 더해줍니다.
그러면 이렇게 하면 지금 이렇게 하면 0번째부터 n 마이너스 1번째까지 모두 돌겠죠.
그다음에 이제 지금 이 과정이 여기 부분이잖아요.
그래서 다 더해주는 곳까지 갔으니까 이제 2m만큼을 나눠줘야 됩니다.
그래서 여기 보시면 이 n 분의 1을 곱해주는 걸 볼 수가 있어요.
그다음에 이제 코스트 값을 리턴을 하게 되면 이 코스트를 계산하는 함수가 완성이 됩니다.
이걸 또 실행을 해주고
与会者 1 10:02 然后实际 y 实际 y,现在这里也是刚才啊,第 x 个对应的 y h 已经求出来了,所以这里也需要获取 y 值。这样就可以求出差值,然后按照之前说的对其进行平方。然后将这个符号加到原有的代价值中。这样的话,就会从 0 到 n-1 全部遍历。接下来,这个过程就是这部分。既然已经全部加完,现在需要除以 2m。所以你可以看到这里乘以了 1/n。然后返回代价值,这个计算代价的函数就完成了。然后再执行它
Attendees 1 11:10
그다음에 이제 출력을 해보면 되겠죠. 아까 w 같은 경우에는 100으로 저희가 처음에 정의를 했었고 이제 편형 같은 경우도 10으로 정의를 했었죠.
그리고 y 트레인 값은 위에서 이제 구한 원래 실제 y 값이고 이제 y h은 저희가 방금 만든 함수를 통해서 예측된 y 값들이겠죠.
그래서 여기다가는 바로 위에서 만든 이 컴퓨터 코스트 함수를 활용을 해가지고 이 코스트 값을 넣어주면 되겠죠.
그러면 똑같이
与会者 1 11:10 接下来就可以输出了。之前 w 我们是定义为 100,偏置也是定义为 10。然后 y 训练值是之前求出的实际 y 值,y h 是我们刚刚通过函数预测的 y 值。所以这里可以直接使用刚才创建的计算代价的函数,将代价值代入。那么就会一样
Attendees 1 11:53
여기도 파라미터가 4개라고 했었죠. x랑 y랑 w랑 b 근데 여기서 보시면 x랑 y랑 w랑 b인데 저희가 저희한테 주어지는 건 이제 x 트레인이랑 y 트레인이 있으니까 이 x랑 y 자리에 각각 넣어주면 되겠죠.
x 트레인 와이 트레 이렇게 해주면 이제 4개의 파라미터를 넣고 그 코스트 값을 계산해서 이제 반환한 코스트를 요 변수에 넣어주겠죠.
그래서 이걸 실행을 해보면 이렇게 다음과 같이 나옵니다.
그러면 지금 이 의미는 가중치가 100이고 편향이 10일 때 저희가 실제 y 값이랑 이제 예측된 y 값의 차이들을 통해서 구한 코스트가 이 정도라는 거예요.
지금 약간 크죠. 그래서 이거를 이제 그레디언트를 구해가지고 이걸 점차 낮춰주는 방식을 구현을 해볼 겁니다.
参会者 1 11:53 我们之前说过有 4 个参数。x 和 y 和 w 和 b,但是在这里我们看到的是 x、y、w 和 b。因为我们现在有 x 训练集和 y 训练集,所以可以分别将它们放在 x 和 y 的位置。放入 x 训练集和 y 训练集,然后放入这 4 个参数,计算代价值,并将返回的代价值放入该变量。如果执行,结果如下。这意味着当权重为 100,偏置为 10 时,通过实际 y 值和预测 y 值的差异计算得出的代价大概是这样。现在看起来有点大。所以我们接下来将通过计算梯度来逐步降低这个值。
Attendees 1 13:12
그다음에 이제 여기서 구하는 코스트에 이제 그레디언트를 계산을 해볼 건데요.
여기서 보시면 이제 이 값은 이제 j은 코스트죠. 코스트에 이제 w에 대한 편미분을 나타냈고 이거 같은 경우에는 코스트에 이제 편향에 대한 편미분을 나타내겠죠.
이것도 똑같이 이제 수식으로 구현을 할 수가 있어요.
그래서 이제 이 컴퓨터 그레디언트 같은 경우에는 똑같이 이제 선형 회귀에 대한 이제 그레디언트를 계산하는 함수를 저희가 만들어볼 거예요.
아까 위에서 했던 건 코스트를 계산하는 함수였죠 그런 차이가 있습니다.
똑같이 이제 x는 m계의 값을 가진 이제 넌 파이 RA이고 이게 일반적으로 이제 요 앞에 있는 이제 파셜을 d로 작성을 하니까 이제 DJ DW DJ 깊이로 이렇게 정의를 하겠습니다.
이제 각각 의미는 동일해요. 이제 w에 대한 편미분 j의 이제 편향에 대한 현미분이라고 생각을 해 주시면 되겠습니다.
参会者 1 13:12 接下来我们将计算代价的梯度。你看,这个值是代价 j。这是对 w 的偏导数,而这个是对偏置的偏导数。同样可以用公式实现。我们将创建一个计算线性回归梯度的函数。之前的是计算代价的函数,这是有区别的。同样,x 是 m 维的 numpy 数组,我们通常在前面写偏导数 d,所以定义为 DJ/DW 和 DJ/DB。它们的含义是相同的,分别是对 w 和偏置的偏导数。
Attendees 1 14:22
그러면 똑같이 m은 이제 학습 개수가 몇 개 학습 개수가 몇 개인지 이제 정의를 하면 되고 이제 DJ랑 이제 DJ DW랑 DJ가 DB를 이렇게 정의를 해주겠죠.
똑같이 이제 포문을 활용을 해가지고 변수의 개수가 모두 엠개니까 엔번만큼 그레디언트를 계산을 해서 더해주겠죠.
出席者 1 14:22 那么,M 现在定义学习数量是多少,学习数量是多少,然后定义 DJ 和 DJ DW 以及 DJ 的 DB。同样地,现在将使用循环,因为变量的数量是 M 个,所以计算 N 次梯度并相加。
Attendees 1 14:57
아까 y h은 위에서 어떻게 계산하는지 했었죠. w랑 x를 곱한 다음에 편량을 더해주는 방식을 하기로 했었어요.
그래서 똑같이 여기도 아 번제니까 플러스 90 이렇게 해 주시면 되고 그다음에 이제 그리디언트를 계산을 하면 되겠죠.
그러면 이제 위에 수식을 살펴보면은 여기도 이제 y h에서 y를 뺀 다음에 이제 x를 더해준 값을 모두 더한 다음에 개수로 나누고 여기는 이제 x를 곱하진 않죠.
왜냐하면 얘는 편형이니까 그러면 그렇게 해볼게요.
똑같이
出席者 1 14:57 之前我们讨论过如何计算 y h。通过将 w 和 x 相乘,然后加上偏置项。所以同样地,这里也是第 n 个,加上 90。然后计算梯度。如果查看上面的公式,从 y h 中减去 y,然后加上 x,将所有值相加,然后除以数量,这里不乘以 x,因为这是偏置项。那就这样做。同样地。
Attendees 1 15:51
1인데 제가 x를 곱해준다고 했었죠.
参会者 1 15:51 1 我之前说过要乘以 x。
Attendees 1 15:58
그리고 위에서는 y h에서 이제 YI를 뺐는데 저는 반대로 했으니까 앞에 마이너스를 붙여줄게요.
여기도 그러면 YI 마이너스 y h이 되겠죠. 근데 이거는 편향이니까 x를 곱해주지 않죠.
여기도 똑같이 앞에 마이너스를 붙여줄게요. 이렇게 해서 수행을 하게 되면은 이제 m개의 변수에 대한 각 편미분 값을 모두 모두 계산을 해서 이 변수들을 더해줬겠죠.
그러면 이제 m계에 대한 평균을 구해주면 되기 때문에 각각의 변수를 m으로 나눠줘서 마지막으로 이제 반환을 해주면 됩니다.
参会者 1 15:58 之前在上面减去了 YI 和 yh,但我是反过来做的,所以我会在前面加一个负号。这样的话,就变成了 YI 减去 yh。但由于这是偏置,所以不乘以 x。这里我也会在前面加上负号。这样做之后,我们会计算出 m 个变量的每个偏导数值,并将它们相加。然后,为了得到 m 阶段的平均值,我们需要将每个变量除以 m,最后返回结果。
Attendees 1 16:45
지금 작성한 부분이 여기였죠.
与会者 1 16:45 现在写的部分就是这里。
Attendees 1 16:52
그래서 얘도 실행을 해 줄게요.
与会者 1 16:52 所以我也将执行它。
Attendees 1 16:59
그러면 이렇게 방금 이제 그레디언트를 구하는 함수를 정의를 했었죠.
그러면 이제 현재 이제 가중치랑 편향에 대한 그레디언트를 한번 계산을 해볼게요.
아까 w랑 똑같이 100이고 편형은 b죠. 그리고 x 트레인이랑 y 트레인은 아까 정의한 그대로고 이제 여기다가 방금 저희가 만든 코스트 그레이디언트 함수를 넣으면 되겠죠.
컴퓨터 그레디언트 그러면 똑같이
与会者 1 16:59 那么,就像我们刚才定义的梯度计算函数一样。那么现在我们就来计算一下权重和偏置的梯度。就像之前一样,权重是 100,偏置是 b。然后 x_train 和 y_train 与之前定义的一样,现在我们只需要将刚才创建的成本梯度函数放入其中。计算机梯度,那么也是一样的
Attendees 1 17:30
컴퓨트 스 하고 여기도 이 함수에 대한 파라미터가 4개였죠.
x랑 y랑 w랑 b랑 그대로 넣어주면 됩니다.
与会者 1 17:30 计算梯度,这里的函数参数是 4 个,对吧。x、y、w 和 b,直接放入即可。
Attendees 1 17:46
이렇게 하면은 이제 각 데이터랑 이제 파라미터에 대한 그레디언트를 계산을 해서 이 두 개의 변수로 반환을 해주는 함수가 실행이 되겠죠.
这样的话,现在就可以计算每个数据和参数的梯度,并将这两个变量作为返回值的函数就会被执行了。
Attendees 1 18:02
그래서 얘를 돌려보면 다음과 같은 현미분 값이 나옵니다.
所以当我们运行它时,会得到如下的偏微分值。
Attendees 1 18:29
그다음에 이렇게 그레디언트를 계산했으니까 이제 경사 방법을 해보면 되겠죠.
경사 방법은 앞에서 이제 저희가 구했던 이 그레이디언트를 사용을 해가지고 가중치를 계속 업데이트하는 과정인데 이것도 해당 식을 이제 추가를 해서 코드로 작성을 해볼 수가 있어요.
그래서 이제 적절한 가중치랑 편향을 찾기 위해서 경사 방법을 계속 수행해 주는 함수를 정의를 해볼 겁니다.
똑같이 이제 x는 이제 m개의 예제를 가진 인풋 데이터고 이제 y는 이제 타겟 밸류죠.
실제 값 그리고 알파 같은 경우에는 이제 일반적으로 학습률을 알파로 표현을 하죠.
그리고 이제 얼마나 반복을 할 건지 그리고 제 히스토리 같은 경우에는 이 코스트 값을 저장하는 그런 리스트입니다.
그래서 여기다가 이제 제 히스토리를 처음에 리스트를 정의를 해줬고요.
여기서도 보시면 이제 이거는 파라미터죠. 저희가 조절을 할 수가 있어요.
参会者 1 18:29 接下来,既然我们已经计算了梯度,那么现在可以尝试梯度方法了。梯度方法是使用我们之前计算的梯度来不断更新权重的过程,我们可以通过添加相应的公式来编写代码。现在,为了找到适当的权重和偏置,我们将定义一个持续执行梯度方法的函数。同样,x 是包含 m 个样本的输入数据,y 是目标值,即实际值。至于α,通常用α表示学习率。然后是要迭代多少次,对于我的历史记录,是用来存储成本值的列表。所以我首先定义了一个历史记录列表。在这里,你可以看到这些是可以调整的参数。
Attendees 1 19:31
몇 번 동안 이제 경사 방법을 진행을 할 거냐 그쵸 그러면 여기 부분은 아까 저희가 편미분을 어떻게 계산하는지 했었죠.
그래서 그대로 작성을 해 주시면 됩니다. 컴퓨트 그리디언트겠죠.
그러면 이번에는 지금 이 함수 내에서 작동을 하니까 여기에서 x랑 y가 이렇게 정의가 되어 있어요.
그래서 x y 그리고 w랑 b를 넣으면 되겠죠. 그다음에 이제 이 작성한 계산한 그레디언트를 가지고 이제 가중치랑 편향을 업데이트를 해줄 건데 제일 위에서 보시면 어떻게 업데이트 하냐면 이제 앞에 학습률을 곱한 다음에 기존 가중치에서 빼주죠.
그걸 그대로 수행을 하면 됩니다. 그래서 w에서 빼주는데 이제 학습률을 곱한다고 했죠.
그러면 알파를 해주고 이제 가중치에 대한 편미분 값을 여기다가 곱해줍니다.
편형도 똑같이 해주면 되겠죠. b는
参会者 1 19:31 现在将进行多少次梯度方法,对吧?这部分是我们之前讨论过如何计算偏导数。因此,你可以直接编写。计算梯度。由于这个函数现在正在执行,x 和 y 在这里已经被定义。所以你可以输入 x、y、w 和 b。然后,使用计算出的梯度来更新权重和偏置。在最上面,你可以看到如何更新:首先将学习率乘以,然后从现有权重中减去。直接执行这个操作即可。所以在 w 中减去,乘以学习率。那么就用α,然后乘以权重的偏导数值。偏置也以相同的方式处理。
Attendees 1 20:43
이렇게 해주면 되겠죠. 지금 여기서 차이는 이제 b랑 w 요 변수밖에 차이가 안 나겠죠.
그리고 제 히스토리는 아까 그 각각 계산된 코스트를 저장을 해준다고 했죠.
그러면 여기다가 코스트 값을 저장을 하면 됩니다.
똑같이 컴퓨터 코스트 x y wp
如果这样做就可以了。现在在这里,差异只在于 b 和 w 这两个变量。而且我之前说过要保存每个计算出的代价值。那么就把代价值存储在这里。同样,计算机代价 x y wp
Attendees 1 21:17
그리고 저희가 몇 번을 돌릴지 모르겠지만 이제 천 번 돌릴 때마다 출력되도록 해서 저희가 좀 이 코스트 변화 값을 확인할 수 있도록 하는 코드입니다.
그래서 여기 보시면 지금 여기는 이제 점수를 출력하겠다 이런 거죠.
그래서 전체 자릿수가 다섯 자리로 맞춰지면 좋으니까 5로 한 거고 여기 같은 경우에는 이제 부동 소수점 표시하는 방법인데 0.2까지는 이제 소수점 아래 두 자리까지고 이는 이제 지수 표기법을 사용하겠다는 그런 의미가 되겠죠.
그래서 코스트는 이렇게 이 방법을 사용을 해서 출력을 하고 합니다.
我们可能不知道要迭代多少次,但现在是每迭代 1000 次就输出,这样我们就可以观察代价变化值。所以你看,这里是要输出分数。因此最好能调整到 5 位数,所以设为 5。这里是关于浮点数表示的方法,0.2 表示小数点后两位,这表示将使用科学记数法。所以代价就是这样使用这种方法来输出。
Attendees 1 22:04
그리고 이제 리턴 값은 방금 업데이트된 이제 가중치랑 편형이랑 그리고 코스트의 기록 히스토리를 출력을 하면 되겠죠.
반환을 하면 되겠죠. 그래서 이걸 실행을 해 주면 경사 광고를 수행하는 함수가 정의가 됩니다.
出席者 1 22:04 现在返回值是刚刚更新的权重、偏置以及成本的记录历史。可以返回。这样执行后,梯度下降函数就定义完成了。
Attendees 1 22:28
그래서 방금 위에서 정의한 함수를 가지고 이제 경사강법을 진행을 해볼 건데 이제 초기 파라미터에서 시작을 하고 이제 감사 방법을 통해서 파라미터를 학습하는 과정입니다.
초기 파라미터는 이제 0이라고 설정을 해놨죠. 지금 가중치도 0이고 편형도 0으로 해놨어요.
그리고 여기서 보시면 하이퍼 파라미터는 0.01이랑 만으로 정의를 하라고 했어요.
그러면 학습률은 0.01로 설정을 하고 그리고 이제 몇 번을 반복하냐 난 번을 반복해 보겠습니다.
出席者 1 22:28 现在我们将使用刚才定义的函数进行梯度下降,从初始参数开始,通过梯度下降方法学习参数的过程。初始参数已设置为 0,包括权重和偏置都设为 0。在这里,超参数已被定义为 0.01,所以学习率设置为 0.01,并将进行一定次数的迭代。
Attendees 1 23:07
이렇게 이제 하이퍼 파라미터도 설정을 한 다음에 이제 경사강법을 실행하겠죠.
근데 아까 경사 하강법을 실행하는 함수를 저희가 그레디언트 디센트 함수로 정의를 했었죠.
그래서 그걸 작성을 해 주시면 됩니다.
出席者 1 23:07 现在设置了超参数后,我们将执行梯度下降法。但是,之前我们已经定义了一个梯度下降函数。所以请编写这个函数。
Attendees 1 23:36
그레디언트 디센트고 아까 파라미터가 뭐 뭐 뭐 뭐가 있었죠?
위에 보시면 총 6개의 파라미터를 넣어주면 되죠.
x랑 y랑 그리고 이거는 아까 이니셜을 정의를 했었죠.
그래서 그걸 넣어주시면 되고 알파랑 이제 몇 번 돌지도 저희가 하이퍼 파라미터로 지정을 해놨어요.
그래서 그걸 하나씩 적어주시면 됩니다. 그건 처음에 x니까
出席者 1 23:36 是梯度下降,之前有哪些参数?在上面可以看到,总共有 6 个参数需要输入。x 和 y,以及之前已经定义的初始值。所以请输入它们,还有学习率和迭代次数,这些我们已经作为超参数设置了。因此请一一填写,首先是 x。
Attendees 1 24:03
잠시만요.
参与者 1 24:03 稍等一下。
Attendees 1 24:32
그래서 익스프레인 넣고 와이 프레인 넣고 순서대로 넣으면 되겠죠.
가중치 초기화 값 그리고 촬영 종료
参与者 1 24:32 所以先放入表达式,然后放入 Y 表达式,按顺序放入就可以了。权重初始值,然后拍摄结束
Attendees 1 24:55
이렇게 6개를 넣고 수행을 해주면 되는데 이제 학습된 파라미터를 보고 싶으니까 마지막에 출력을 해 주면 좋겠죠.
그러면 아래 지금 출력 형식을 보시면 이제 w는 이렇게 b는 이렇게 되어 있어요.
그래서 그대로 작성을 해 주시면 됩니다. w는 띄어쓰기가 여기
与会者 1 24:55 这样放入 6 个并执行,现在想查看学习过的参数,最后输出会很好。如果查看当前的输出格式,w 和 b 是这样的。所以可以直接这样写。w 在这里有空格
Attendees 1 25:23
왜냐하면 여기서 이제 이제 경사 하강법을 통해서 이제 피든 가중치랑 편향이 이제 마지막 버전이 이제 파이널로 해가지고 여기로 이 변수로 들어오죠.
값들이 그래서 그걸 출력을 해 주면 됩니다. 똑같이
与会者 1 25:23 因为在这里,通过梯度下降法,最终的权重和偏置已经确定,并进入这个变量。这些值已经是最终版本,所以可以直接输出。完全一样
Attendees 1 25:51
이렇게 해서 실행을 해주면 금방 학습되니까 바로 출력이 되죠.
그래서 경사강법을 수행한 이제 코스트의 변화는 다음과 같고 이제 특정 코스트 이하로는 이제 잘 변화하지 않는 걸 볼 수가 있어요.
그리고 이제 가중치랑 편향은 다음과 같이 업데이트 되었습니다.
그러면 여기서 보시면 이제 코스트가 바뀌긴 했지만 이게 잘 이제 가시적으로 와닿진 않잖아요.
그래서 이 코스트의 변화를 시각화해서 그래프를 통해 확인을 해볼 겁니다.
그래서 1부터 100까지라고 되어 있지만 파이썬은 0부터 99까지죠.
그래서 0부터 99까지 이제 변화한 코스트의 변화 값을 출력을 해볼 거예요.
그래서 PLT죠 그래프니까 클라이고 아까 코스트의 변화 값은 제 히스토리에 저장을 한다고 했었죠.
그래서 제 히스토리를 가져오고 그리고 100까지 하면 100개의 값의 변화를 확인을 할 수가 있겠죠.
执行这个操作后很快就会学习完成,并立即输出。通过执行梯度下降法,成本的变化如下,可以看到成本在降到某个特定水平后就不再明显变化。权重和偏差已经如下更新。从这里可以看出,虽然成本发生了变化,但并不是很直观。因此,我们将通过图形来可视化成本的变化。虽然显示的是 1 到 100,但 Python 是从 0 到 99,所以我们将输出 0 到 99 的成本变化值。使用 PLT 绘图,并调用之前存储在历史记录中的成本变化值。这样我们就可以看到 100 个值的变化。
Attendees 1 27:05
그쵸 여기에서는 원래는 이제 위에는 제 히스토리인데 반환을 할 때는 j 히스트로 가져왔어요.
그래서 이렇게 코드를 추가해 주면 되겠죠. 그리고 타이틀은 이제 코스트의 변화 값이랑 이제 얼마나 돌아갔을 때 코스 변화 값인지 봐야 되니까 이터레이션을 했었고 이제 y는 코스트 엑스는 인터레이션입니다.
얘를 실행을 해 주면 이제 코스트가 감소하는 걸 이제 저희가 시각적으로 확인을 할 수가 있어요.
是的,在这里原本是我的历史记录,但返回时使用了 j 历史记录。所以可以像这样添加代码。标题将显示成本变化值以及迭代次数,x 轴表示迭代次数,y 轴表示成本。执行后,我们可以直观地看到成本在下降。
Attendees 1 27:41
그리고 이제 학습된 모델도 그래프로 확인을 해볼 수가 있겠죠.
그래서 여기서 보시면 이제 똑같이 이제 산전도를 확인을 해볼 건데 이제 먼저 선전도 그래프를 그려요.
여기서 보시면 스트레인이랑 와이트레인 넣고 이제 표시는 영어로 하고 색깔은 파란색으로 해줄 거예요.
그리고 이제 가중치랑 편향을 통해서 학습 이제 저희가 예측한 y 값을 이제 또 같이 추가를 해서 하나의 그래프에서 확인할 수가 있어요.
여기서 보시면 이제 파란색은 원래 y 값이고 빨간색은 저희가 예측한 예측한 y h 값이 되겠죠.
그래서 y 은 아까 이제 프리젝트 함수를 정의했었죠.
그걸 다시 써줄 겁니다.
参会者 1 27:41 现在我们也可以通过图表查看已学习的模型。在这里,我们将绘制与之前相同的散点图。我们将放入应变量和 Y 训练,标签用英语,颜色为蓝色。然后,通过权重和偏置,我们可以添加我们预测的 Y 值,并在同一个图表中进行确认。在这里,蓝色是原始 Y 值,红色是我们预测的 Y 值(预测的 Yh)。这是我们之前定义的预测函数。我们将再次使用它。
Attendees 1 28:30
그리고 마지막에 아까 경사 방법을 통해서 이제 저희가 알게 된 가중치랑 편향을 넣어주면 되겠죠.
그러면 이제 yh 값이 구해질 거고 방금 위에서는 이제 스트레인에 대해서 이제 와 트레인을 시각화 를 시각화를 해줬는데 이제 아래에서는 엑스트레인에 대해서 이제 yh을 그래프로 표현을 해 줄 수가 있겠죠.
대신 이거는 이제 라인 그래프를 사용을 해 줄게요.
선형 함수니까 그럼 TLT 블루 익스프레인 여기서는 이제 실제 y 값이 아니고 예측된 y 값이니까 y h을 넣어주면 되겠죠.
그리고 색깔은 여기 아래에서 보시듯이 빨간색으로 해줄게요.
이렇게 해서 실행을 해주면 사이즈 변화에 대한 프라이스의 이제 예측 값이랑 실제 값이 이렇게 나타내는 것을 볼 수가 있습니다.
参会者 1 28:30 最后,通过我们刚才使用梯度方法学到的权重和偏置,就可以得到 Yh 值。之前我们可视化了应变量对于 Y 训练,现在我们可以用图表表示 X 训练的 Yh。不过这次我们将使用线性图,因为它是线性函数。在 TLT 蓝色表达式中,这里不是实际的 Y 值,而是预测的 Y 值,即 Yh。颜色将按照下面所示设置为红色。这样执行后,我们可以看到尺寸变化对价格的预测值和实际值的表示。
Attendees 1 29:38
그래서 이 부분에 방금 넣었어
与会者 1 29:38 我刚才把这部分放进去了
Attendees 1 29:48
그러면 이렇게 모델을 학습을 했으니까 이제 이미 x 값에 대해서 저희가 y 값을 예측을 해볼 수가 있겠죠.
그래서 사이즈를 1500제곱 피트라고 해볼게요.
대신 이제 뒤에서 이제 천을 곱해줄 거니까 여기에 1.5로 정의를 해놨어요.
그러면 프라이스는 얼만가 이것도 이 모델을 사용해서 똑같이 예측을 하실 수 있겠죠.
이번에는 x는 사이즈죠. 그러니까 사이즈를 넣어주고 그리고 이제
与会者 1 29:48 既然我们已经这样训练了模型,那现在就可以对 x 值预测 y 值了。假设面积是 1500 平方英尺,我已经将其定义为 1.5(因为后面会乘以 1000)。那么价格是多少呢?您可以使用这个模型同样进行预测。这次 x 是面积,所以放入面积,然后现在
Attendees 1 30:23
마지막 가중치랑 평량 값을 넣어주면 되겠죠. 그러면 이제 사이즈에 대해서 예측된 y 값이 이제 프라이스에 가겠죠.
그걸 출력을 해보면 다음과 같은 결과가 나오죠. 그러면 사이즈가 이제 1.5 그러니까 여기서는 이제 1500이죠.
1500제곱 피트일 때 집의 예상 가격이 이만큼이다 라는 이제 결과를 저희가 알 수가 있어요.
参与者 1 30:23 如果输入最后的权重和平均值,那么现在预测的 y 值就会接近价格。如果我们输出它,结果就会是这样。那么,当尺寸现在是 1.5,也就是这里的 1500,我们就可以知道 1500 平方英尺房子的预期价格是多少。
Attendees 1 30:54
그다음에 이번에 아까 위에서는 x가 하나였죠. 근데 이제 아래에서는 이제 x 변수가 여러 개인 그럼 선형 회기를 진행을 해볼 겁니다.
그래서 테스크는 동일하지만 하나가 추가됐죠. 원래는 사이즈만 있었는데 이번에는 x1이 룸스가 추가가 됐어요.
그리고 이제 데이터셋 이름이 이제 아까까지는 이제 소문자 x였는데 지금부터는 이제 라즈 x로 작성을 할 거라서 그렇게 해 주시면 될 것 같습니다.
여기서 보시면 이제 똑같이 이제 라이브러리 불러오고 이번에는 이제 2차원이라고 했으니까 x 제로랑 x1이 들어와서 하나의 페어가 되는 걸 확인을 할 수가 있어요.
그래서 이것도 실행을 해 줍니다. 그래서 보시면 지금 스트레인 값은 이렇고 y 트레인 값은 이렇게 정의를 할 수 있겠죠.
그다음에 얘도 아까 위에서처럼 이제 트레인 데이터를 이제 그래프로 시각화해서 볼 수가 있는데 이번에는 3차원이니까 3차원 그래프로 나타내 볼 거예요.
参与者 1 30:54 接下来,之前我们只有一个 x 变量,但现在我们将进行多变量线性回归。任务是相同的,只是增加了一个变量。原来只有尺寸,现在增加了 x1,即房间数。并且数据集名称从之前的小写 x 改为大写 X。在这里,我们可以看到同样是导入库,因为现在是二维的,所以 x0 和 x1 组成一对。执行后,我们可以定义训练值和 y 训练值。然后,就像之前一样,我们可以将训练数据可视化,但这次是 3D 图表。
Attendees 1 32:05
그래서 여기다가 이제 3차원으로 저희가 볼 거다 이렇게 설정을 해주고 똑같이 산정도 그래프를 그리면 되겠죠.
근데 얘는 이제 3차원이니까 각각 x 좌표랑 y 좌표랑 z 좌표에 대해서 모두 값을 넣어줘야 돼요.
그래서 지금 여기서 보시면 첫 번째 x 제로 그리고 여기 두 번째 x1 그리고 여기다가 y를 넣어주고 똑같이 막판으로 우로 하고 색깔은 파란색으로 했어요.
그래서 얘를 실행을 해주면 분포가 좀 비슷하지만 3차원인 걸 확인할 수가 있습니다.
그다음에 얘도 이렇게 가로지르는 선형 모델을 만들 수가 있겠죠.
근데 이제 비슷하게 이제 x랑 y를 곱해주지만 x랑 w를 곱해주지만 이번에 내접을 통해서 진행을 하게 되겠죠.
왜냐하면 이제 x는 벡터니까
与会者 1 32:05 所以我们将在这里用 3 维方式查看,并设置如此。同样,我们可以绘制散点图。但是,由于这是 3 维的,所以需要为 x 坐标、y 坐标和 z 坐标分别输入值。现在如果您看这里,第一个是 x 零,第二个是 x1,然后在这里放 y,同样最后向右,颜色为蓝色。执行后,您可以看到分布有些相似,但确认它是 3 维的。接下来,我们也可以创建一个横穿的线性模型。但是现在,我们会像乘以 x 和 y 一样,乘以 x 和 w,但这次通过内积进行。因为现在 x 是一个向量。
Attendees 1 33:05
그래서 여기에 보시면 지금 m 콤마 n 배열에 대해서 이제 진행을 하게 되는 거고 얘는 이제 x가 몇 개인지를 확인할 수 있겠죠.
여기서는 지금 저희가 x 하나에 대해서 x 제로랑 x1 두 가지가 있으니까 n은 2로 생각을 해 주시면 되겠죠.
그리고 이 엔 개수에 대해서 각각의 파라미터가 만들어져야 되니까 w는 엔 개가 있겠죠.
그리고 편리함은 한 번만 더해지면 스칼라 값이니까 단일 값입니다.
그래서 여기서 보시면 지금 x가 두개니까 그에 대응하는 이제 가중치도 2개가 정리된 걸 확인할 수가 있어요.
똑같이 이제 예측하는 함수를 정의를 해볼 건데 이번에는 이제 벡터 연산이니까 곱하기 기호를 쓰는 게 아니고 다 프로덕트를 하겠죠.
그러면 넌 파이에 다 프로덕트를 활용을 해서 엑스랑 가중치를 넣어주면 돼요.
그리고 뒤에 편향을 더해주니까 b를 하면 되겠죠.
与会者 1 33:05 所以如您所见,现在我们将处理 m、n 数组,并可以确定 x 的数量。在这里,我们有 x 零和 x1 两个,所以 n 可以认为是 2。并且,由于每个参数都需要对应 n 的数量,w 将有 n 个。偏置只需再加一次,因为它是一个标量值,即单一值。因此,您可以看到,既然 x 有两个,对应的权重也有两个。同样,我们将定义一个预测函数,但这次是向量运算,所以不使用乘法符号,而是使用点积。那么,您可以使用点积,将 x 和权重代入,然后在后面加上偏置 b。
Attendees 1 34:10
이렇게 해서 이제 진행을 실행을 하게 되면 y 값이 계산이 되고 그 y를 반환을 하는 함수를 정의를 할 거예요.
이걸 실행해 줍니다.
与会者 1 34:10 这样执行后,现在将计算 y 值,并定义一个返回该 y 的函数。将执行此操作。
Attendees 1 34:24
그럼 여기서 보시면 다음과 같은 형태로 이제 y h이 계산이 되는데 이 결과값은 어쨌든 요 다 프로덕트를 실행을 하면 스칼라 값이 나오고 이제 편향도 스칼라 값이니까 결국에 y h은 이제 싱글 데이터인 스칼라 값이 되겠죠.
그런 이제 과정을 풀어서 작성을 해둔 겁니다. 그러면 이제 아까 위에서 했던 것처럼 이의의 모델 파라미터를 저희가 정의를 해줄 거예요.
이번엔 똑같이 아까 처음에서는 x가 하나였으니까 가중치가 100 하나였죠.
근데 이번에는 이제 x에 대해서 x 제로나 x1이 있으니까 가중치도 이제 w제랑 w1 각각 100으로 정의를 해 줄게요.
그의 편향은 동일하게 10으로 정의를 하겠습니다.
그다음에 이제 학습 데이터에서 이제 첫 번째 행을 가져와 볼 거예요.
그래서 엑스트레인의 0번째 와 트레인의 0번째를 출력을 해서 확인을 해볼 겁니다.
그러면 그리고 이제 이 y 해제는 이제 첫 번째 데이터에 대한 예측 값을 한번 출력을 해볼 건데 똑같이 프리딕트 함수를 쓰면 되겠죠.
与会者 1 34:24 从这里可以看出,y h 现在是这样计算的,这个结果值最终会通过乘积运算得到一个标量值,因为偏置也是标量值,所以 y h 最终将成为一个单一的标量值。这就是现在展开记录的过程。然后,像之前一样,我们将定义模型参数。这次和之前不同,因为 x 不再是一个,所以权重也将是 w 零和 w1,我都定义为 100。偏置保持不变,为 10。接下来,我将从训练数据中获取第一行。因此,我将打印 X train 的第 0 个和 train 的第 0 个以进行确认。然后,我将使用预测函数输出第一个数据的预测值。
Attendees 1 35:38
그걸 쓰면 되는데 아까 여기서 보시면 여기서 보시면 x랑 w랑 b가 들어가죠.
근데 방금 말했다시피 x 트레인의 첫 번째 값에 대해서 이제 y 값을 예측을 할 거니까 x 자리에 스트레인이 들어가면 되겠죠.
이때 라지 x로 써주셔야 됩니다. 그리고 가중치랑 편향을 넣어주면 돼요.
그래서 이걸 수행하게 되면은 이제 첫 번째 첫 번째 값에 대한 이제 yh 값이 계산이 되겠죠.
그래서 얘를 실행해 주면 다음과 같습니다. 그러면 방금까지는 이제 첫 번째 값에 대한 계산만 진행을 해봤는데 이제 전체 데이터에 대한 계산을 진행을 해서 전체 예측 값을 확인할 수가 있겠죠.
똑같이 이제 가중치랑 편형은 다음과 같이 정의를 해두고 모든 데이터셋을 한번 확인을 해보는 코드를 출력을 할 겁니다.
지금 화면 여기 보시면 이제 와 h은 저희가 정의를 안 했으니까 그냥 눈으로 출력되는 걸 확인할 수가 있어요.
똑같이 해주면 됩니다. 똑같이 프리딕 함수를 사용을 할 건데 이번에는 전체 데이터죠.
参会者 1 35:38 只需使用这个,如果您之前看到,这里有 x、w 和 b。但是正如我刚才说的,因为要预测 x 训练集第一个值的 y 值,所以 x 的位置应该填入 x 训练集。这时要用大写 x。然后添加权重和偏置。这样执行后,就会计算出第一个值的 yh 值。执行后会得到如下结果。到目前为止,我们只计算了第一个值,现在可以计算整个数据集并确认整体预测值。同样,现在定义权重和偏置,并将输出所有数据集。现在屏幕上显示的 w 和 h 我们没有定义,所以只能用肉眼观察输出。同样使用预测函数,这次是整个数据集。
Attendees 1 36:52
그러면 특정 값을 지정을 하지 않고 해주면 됩니다.
어차피 저희가 프레젝트 함수를 정의를 할 때 다 프로덕트를 사용한다고 했기 때문에 이제 벡터를 넣어줘도 상관이 없는 거겠죠.
그래서 실행을 하게 되면은 이제 각 여기였죠. 방금 쓴 각 x에 대한 이제 예측값 그리고 실제 값이 이렇게 출력이 된 걸 확인할 수가 있어요.
参会者 1 36:52 那么不指定特定值就可以了。反正我们在定义预测函数时已经使用了点积,所以现在放入向量也没关系。执行后,可以看到每个 x 的预测值和实际值如下。
Attendees 1 37:26
얘도 이제 동일하게 코스트 함수를 사용을 해 줄 건데 이게 아까 이제 x가 하나일 때 사용했던 함수죠.
mse 근데 이거를 벡터 형태로도 저희가 계산을 할 수가 있어요.
동일하게 y h에서 y 값을 빼주고 제곱을 한 다음에 다 더해준 다음 2m으로 나눠주면 돼요.
여기서 보시면 x는 이제 n바이n 그리고 y는 그리고 w는 이제 x가 몇 개인지에 따라서 이제 개수가 정해진다고 했었죠.
그리고 b는 상스 컬러 값입니다. 그래서 이제 x의 쉐입을 넣어주면은 각각 데이터가 학습 데이터가 몇 개인지 x가 몇 개인지 이제 이 m이랑 n을 각각 정의가 되겠고 그리고 y h을 계산을 해 주면 됩니다.
yh은 아까 봤다시피 그 함수를 사용을 해도 되지만 한 번 더 작성을 해볼게요.
이거는 벡터 기의 연산이니까 다 프로덕트를 사용을 한다고 했었죠.
x랑 이제 가중치랑 다 프로덕트를 하고 편향을 더해줍니다.
与会者 1 37:26 现在也将使用相同的代价函数,这是之前对于 x 只有一个值时使用的函数。MSE。但我们现在可以以向量形式计算它。同样地,从 yh 中减去 y 值,然后平方,相加后除以 2m。在这里,你可以看到 x 现在是 n 乘 n,y 和 w 的数量取决于 x 的个数。b 是偏置项。因此,当你输入 x 的形状时,每个数据的学习数据个数和 x 的个数将被定义为 m 和 n,然后计算 yh。yh 可以使用之前看到的函数,但我将再次编写。因为这是向量运算,我们使用点积。将 x 和权重进行点积,然后加上偏置。
Attendees 1 38:39
그럼 이렇게 계산된 이제 yh이랑 이제 실제 y 값의 차이를 제곱을 해서 더해준 다음에 EM으로 나누면 코스트가 되겠죠.
그렇게 똑같이 해볼게요. y 셋에서 y는 CT 값이죠.
이걸 빼고 제곱을 해줍니다. 근데 여기 위에서 보시면 제곱을 하는데 이걸 다 더해준다고 돼 있죠.
그러면 이제 넌 파이에 썸을 사용을 합니다. 썸 함수를 그래서 지금 다 더해줬죠.
근데 아까 특정 값으로 나눠준다고 했었죠. 여기도 m으로 나눠주는데 이렇게 하면은 2로 나눠지고 m이 곱해지니까 괄호로 묶어줍니다.
与会者 1 38:39 然后,将计算出的 yh 和实际 y 值的差平方后相加,再除以 2m,就得到了代价。我们将按照相同的方法操作。y_set 中的 y 是 CT 值。减去并平方。在上面,我们看到平方后要相加。因此,我们现在使用 numpy 的 sum 函数。我们已经全部相加。但之前提到要除以特定的值。这里也用 m 除,这样会被 2 除,m 会被乘进去,所以用括号括起来。
Attendees 1 39:31
이렇게 하면 예측된 y랑 실제 y랑 이제 차이 값을 제곱을 한 다음에 모두 더해주고 EM으로 나눠서 약간 평균 느낌을 계산을 해 줄 수가 있겠죠.
그다음에 이 계산한 코스트를 반환을 해줍니다. 이걸 또 실행을 해 줄게요.
그럼 여기서 보시면 이제 w랑 b는 아까 정의를 했었죠.
그리고 y 프레임도 정의를 해뒀습니다. 그리고 y h은 위에서 방금에서는 이제 다 프로덕트를 통해서 저희가 계산을 했지만 이 형태도 이제 위에 프리딕트 함수를 통해서 아까 정의를 해놨었어요.
그래서 스트레인 wb를 가진 파라미터인 이 이제 크리딧 함수를 넣어주면 됩니다.
그러면 지금 보시면 이 초기 파라미터가 다음과 같을 때 코스트를 계산을 해볼 거예요.
그러면 여기다가 방금 정의한 함수를 넣어주면 되겠죠.
컴퓨트 코스트를 넣어줄게요.
参会人员 1 39:31 这样的话,预测的 y 和实际的 y 之间的差值的平方,然后加起来,除以 EM,可以计算出一种平均值。接下来,返回这个计算出来的代价。我们再运行一下。从这里可以看到,w 和 b 是之前定义好的。y 框架也已经定义好了。y h 之前是通过点积计算的,但这种形式现在也是通过之前定义的预测函数。所以只需要将带有 wb 参数的信用函数放进去。那么现在我们将看看在这些初始参数的情况下计算代价。只需要放入刚才定义的函数。我将放入计算代价的函数。
Attendees 1 40:25
여기도 이제 x랑 와랑 이제 가중치랑 편량이랑 넣어주면 되니까 스트레인 와이 트레인 가중치 하면 이렇게 넣어주면 되겠죠.
이렇게 실행해 주면 지금 보시면 코스트 값이 나오죠.
코스트는 다음과 같이 생겼습니다. 좀 크죠 이것도 그러면 이 코스트 값이 큰 만큼 이제 경사관법을 사용을 하면 되겠죠.
이제 경과 방법을 진행을 하기 전에 그레디언트를 먼저 계산을 해볼 건데 그레디언트도 이제 위랑 동일하게 벡터 형태로 이제 변환을 해서 진행을 해 줄 겁니다.
다음과 같은 과정을 통해서 이제 계산이 되겠죠. 그리고 여기서 보시면 이 부분을 이제 코드로 저희가 작성을 해볼 거예요.
그럼 똑같이 이제 선형 회기에 대한 그레디언트를 계산을 할 건데 여기서 보시는 이 값들은 위에랑 동일을 하고 이제 DJ DW DJ DB가 이렇게 정의가 되어 있습니다.
여기서 n개인 이은 이제 x가 x 0이랑 x1 두 개가 있으니까 여기가 여기도 이제 두 개가 나타나게 되는 거겠죠.
参会人员 1 40:25 这里也是放入 x 和 w,即权重和偏置。所以放入训练的 y、训练的权重就可以了。这样执行后,你会看到代价值出现。代价是这样的。看起来很大。那么代价值越大,就越需要使用梯度下降法。在进行梯度下降法之前,我们先计算梯度,梯度也将像之前一样转换成向量形式进行。通过以下过程进行计算。在这里,你可以看到我们将用代码编写这部分。我们将计算线性回归的梯度,这里看到的这些值与之前相同,定义了 DJ DW 和 DJ DB。由于有 n 个,x 是 x0 和 x1 两个,所以这里也会出现两个。
Attendees 1 41:41
그래서 동일하게 이제 x 쉐입을 활용 실행을 해가지고 이제 m이랑 n을 정의를 하고 여기서 보시면 이제 초기 가중치는 모두 0으로 할 건데 초기 편미분 값을 모두 0으로 할 건데 여기는 이제 MP 제로스를 활용을 해가지고 이제 원소가 모두 0인 이제 1차원 배열을 생성을 해 줄 거예요.
그럼 어차피 다 초기 값은 0이라고 생각을 하면 되겠죠.
그다음에 이제 와 h을 계산을 해줍니다. 똑같죠 y h은 MP 다 x랑 가중치 그리고 편향을 더해주면 되죠.
이제 여기다가 이제 각 차이 값을 계산을 해서 이 값을 넣어줍니다.
이게 차이 값이죠. 그러면 그레디언트를 어떻게 계산을 해야 되냐 여기서 보시면 여기서 똑같죠.
지금 x를 이제 트랜스포즈 해 준 다음에 이 에러 값을 곱해서 m으로 나눠주죠.
이걸 동일하게 작성을 해주면 됩니다.
因此,现在利用相同的 x 形状执行,定义了 m 和 n。如您所见,初始权重将全部设为 0,初始偏导数值也将全部设为 0。这里将使用 numpy 的 zeros 来创建一个元素都为 0 的一维数组。无论如何,可以认为初始值都是 0。接下来计算 h。这是一样的,h 是 numpy 中 x 与权重以及偏置的相加。现在计算各自的差值并将其代入。这就是差值。那么梯度如何计算呢?如您所见,这里是一样的。首先对 x 进行转置,然后乘以误差值,最后除以 m。同样的方式进行编写即可。
Attendees 1 42:46
대신 오른쪽에도 보시면 이번엔 편형이니까 x가 안 곱해진 걸 확인을 할 수가 있어요.
트랜스 포즈 해 주는 거니까 차원을 맞춰주기 위해서 트랜스 포즈를 해주는 거죠.
그러면 똑같이 다 프로덕트로 MP가 x 트랜스포즈 하고 차이값과의 다 프로덕트를 해줍니다.
그리고 총 1개로 나눠주면 되겠죠. 편향도 동일하게 하면 되지만 이번에 다 프로덕트를 하지 않고 그냥 더해주기만 할게요.
p 썬 이렇게 하시고 또 m으로 나눠주면 됩니다. 그럼 이렇게 이제 편미분 값이 계산이 돼서 리턴이 되는 함수를 정의를 했죠.
저희가 얘도 실행을 해줍니다. 그리고 그다음에 이제 현재 값에 대한 그레디언트를 또다시 계산을 해볼게요.
아까 w는 이제 100이 2개였죠. xw 0은 100이고 이제 w1도 100이었어요.
그리고 8량은 10이었고 엑스트레인이 와이 트레인은 아까 정리를 했었고 이 부분에 방금 정리한 함수를 넣어주면 됩니다.
컴퓨터 그래디언트를 넣어주면 되겠죠.
不过您可以看到右侧没有乘以 x,这是因为它是偏置。进行转置是为了调整维度。然后像之前一样使用 numpy 的点积,对 x 的转置和差值进行点积。然后除以总数 1。偏置也是同样的处理,但这次不进行点积,只是简单相加。使用 np.sum 这样处理,然后除以 m。这样就定义了计算偏导数值并返回的函数。我们将执行它。接下来再次计算当前值的梯度。之前 w 是 2 个 100。x0 的 w 是 100,w1 也是 100。8 的量是 10,x 训练和 y 训练是之前整理的。将刚才整理的函数放入这部分,放入计算梯度即可。
Attendees 1 44:00
근데 이제 엑스트레인이랑 와이 트레인을 넣고 편향이랑 가중치를 넣어주면 돼요.
그럼 이렇게 계산을 해가지고 DJ DW랑 이제 b에 대한 편의 분인 계산이 돼서 나오고 출력을 해서 확인을 해볼 수가 있습니다.
얘를 실행을 해주면 다음과 같이 나오죠.
与会者 1 44:00 现在只需放入 X 训练和 Y 训练,并加入偏置和权重。然后这样计算,计算出 DJ DW 和关于 b 的偏导数,并输出以供确认。执行它后,结果会如下所示。
Attendees 1 44:30
그래서 이제 가중치에 대한 편미분도 두 개가 나오고 이제 편향에 대한 편미분은 하나가 나옵니다.
왜냐하면 편향은 하나였으니까 그다음에 이제 방금 계산한 그레디언트를 가지고 다시 경사 방법을 진행을 해볼 건데 얘도 이제 벡터 형태로 진행을 해볼 거예요.
그래서 위랑 비슷하지만 이제 XY w 값이 x랑 w 값이 약간 벡터 형태로 들어가고 이제 타겟이랑 이제 편형 같은 경우에는 스칼라 값으로 유지가 됩니다.
그리고 이제 알파는 아까 말했다시피 학습률이고 이제 몇 번 돌릴지는 넘버 이터레이션에 넣어준다고 말씀을 드렸었죠.
똑같이 이제 코스트 jl를 기록할 수 있는 히스토리 리스트를 정의를 하고 진행을 해 줍니다.
与会者 1 44:30 因此,权重的偏导数会得到两个,偏置的偏导数则是一个,因为偏置只有一个。接下来,我们将使用刚才计算的梯度继续进行梯度下降法,这次将以向量形式进行。所以与之前相似,但是现在 X 和 W 值以向量形式输入,目标和偏置保持为标量值。学习率仍然是α,迭代次数如我之前提到的,放入 number iterations 中。同样,我们定义一个可以记录代价函数 jl 的历史列表,然后继续进行。
Attendees 1 45:28
그래서 여기서 보시면 이제 아까 위에서 정의했던 함수를 그대로 넣어주면 되겠죠.
그레디언트를 계산할 거니까 컴퓨트 그레디언트 디언트를 넣어주면 되는데 이제 위에서 이제 해당 함수로 이제 받아온 파라미터는 x랑 y죠 트레인이 안 붙어 있어요.
그래서 그냥 x랑 y를 넣어주면 됩니다. x y 넣어주고 그리고 가중치랑 편향을 넣어줍니다.
그다음에 이제 파라미터를 업데이트하는 것도 똑같이 하면 되겠죠.
위에서 계산한 이제 편미분 값을 앞에 이제 학습률을 곱해준 다음에 기존 가중치에서 빼주면 돼요.
똑같이 하면 되겠죠 w에서 알파를 학습률을 곱한 이제 현미분 값을 빼주고 편향에서도
所以在这里,你只需要直接放入之前定义的函数。因为要计算梯度,所以放入计算梯度的函数,现在从上面获取的参数是 x 和 y,没有 train 前缀。所以直接放入 x 和 y,然后放入权重和偏置。接下来,参数更新也是一样的。使用之前计算的偏导数值,乘以学习率,然后从现有权重中减去。对于 w,乘以学习率α,减去现有的偏导数值,对于偏置也是如此。
Attendees 1 46:31
이렇게 학습률을 곱한 평균 값을 빼주면 이제 편향이 업데이트가 되겠죠.
그리고 이제 코스트 값을 제 히스토리에 넣어주니까 똑같이 아까 코스트를 계산한 함수는 컴퓨터 코스트였죠.
그리고 x y 가중치 편향 이렇게 넣어주면 되겠죠.
그리고 똑같이 이제 코스트 값의 변화를 살펴보기 위해서 이 부분을 하나 넣어줍니다.
얘를 실행을 하면 그레디언트 디센트를 수행하는 함수가 정의가 되겠죠.
그러면 이걸 다시 볼 거예요. 아까랑 똑같이 이제 초기 파라미터로부터 시작을 하고 파라미터 업데이트를 진행을 합니다.
여기도 이제 초기 가중치 값은 다 0으로 하고 이게 아까 위에서 봤던 n이죠.
하나의 x에 몇 개의 x가 들어 있는지 x 제로랑 x1이니까 여기에는 약간 2가 들어가는 느낌일 거예요.
그리고 편향은 하나니까 0으로 정리를 해 주고 여기 뒤에 이제 이렇게 작성을 해 주면 얘는 이제 플러트 형태로 들어가겠죠.
그래서 강제로 형변환되는 걸 막아줄 수가 있습니다.
这样就通过乘以学习率的平均值来更新偏置。然后将成本值放入历史记录中,就像之前计算成本的函数 compute_cost 一样。放入 x、y、权重和偏置。为了观察成本值的变化,加入这一部分。执行后,梯度下降函数就被定义好了。然后我们会再看一遍。从初始参数开始,进行参数更新。这里初始权重值都设为 0,这就是之前看到的 n。一个 x 中包含多少个 x,x0 和 x1,所以这里大概是 2。偏置是 1,所以设为 0,然后这样写,它会以浮点数形式进入。这样可以防止强制类型转换。
Attendees 1 47:41
지금 보시면 이제 하이퍼 파라미터 같은 경우에는 학습률은 0.1로 하고 반복 횟수는 만 번이에요.
그러면 이제 위에서 만들었던 그레디언트 디센트라는 함수를 넣어주면 되겠죠.
똑같이 이제 x 와인 그리고 가중치의 초기값 편향의 초기값 그리고 학습률 그리고 횟수 반복 횟수 넣어주면 되겠죠.
그리고 학습된 파라미터를 또 출력을 할 수가 있습니다.
여기서 보시면 아까 w랑 b가 똑같이 출력이 되는 걸 볼 수 있죠.
그래서 더 위에서 한 대로
现在看到,超参数的学习率设为 0.1,迭代次数为 1 万次。然后将我们之前创建的梯度下降函数插入进去。同样地,输入 x、权重的初始值、偏置的初始值、学习率以及迭代次数。然后还可以输出学习的参数。在这里,您可以看到 w 和 b 已经被输出。所以按照之前的方式
Attendees 1 48:47
이렇게 해서 실행을 해주면 이제 학습된 이제 코스트랑 코스트의 변화랑 이제 학습된 최종적인 업데이트된 이제 가중치랑 편형 값이 나옵니다.
그러면 이 코스트의 변화를 다시 이제 똑같이 출력해서 볼 수가 있겠죠.
얘랑 똑같이 진행을 하면 됩니다. 100개를 볼 거니까 PT를 사용하고 제 리스트에 를 볼게요.
그러면 여기서도 이제 코스트가 감소하는 형태를 확인할 수가 있어요.
얘는 조금 더 빨리 내려왔네요. 이 부분에 있었죠.
그리고 얘도 이제 학습된 모델을 시각화해서 저희가 확인을 해볼 거예요.
똑같이 보시면 아까 3차원 진행할 때 이제 프로젝션 3 3D로 한다고 했죠.
이렇게 3차원으로 할 거다라고 정의를 해두고 이제 데이터 포인트를 어떻게 출력을 할지 스랑 이제 x 제로랑 x1이랑 y 값 넣어주고 그다음에 이제 이렇게 맥시그리드에 대한 이제 전체적인 y 값을 이제 예측을 해볼 겁니다.
这样执行后,现在可以得到学习的成本和成本变化,以及最终更新的权重和偏置值。然后我们可以再次输出这个成本变化。按照同样的方式进行,因为要查看 100 个,所以使用 PT 并查看我的列表。在这里,我们可以确认成本是下降的。这个下降得更快一些。就在这个部分。然后我们还将可视化学习的模型。同样,就像之前在 3D 中进行的那样,定义为 3D 投影。这样就可以输出数据点,将 s、x 零、x1 以及 y 值放入,然后在最大网格上预测整体的 y 值。
Attendees 1 50:05
그래서 x 0을 보시면 지금 1부터 2까지 이렇게 해놨고 x 제로를 보시면 그리고 x 1도 다음과 같이 해놨죠.
어레인지는 저번에 말씀드렸죠. 1부터 2까지인데 이제 간격이 뒤에는 0.25 얘는 2부터 6까지인데 0.25 그리고 이거를 이제 2차원 형태로 만든 다음에 y h을 계산을 해 주면 됩니다.
근데 여기서는 이제 함수를 안 쓰고 아까 했던 이제 저희가 찾았던 최종적인 이제 파라미터를 넣어줄게요.
가중치를 넣어주고 w 0이랑 x 0을 곱해주죠. x 0을 곱해주고 그리고 파이널인데 w 1이랑 x 1을 곱해줬죠.
그리고 편향을 더해주면 됩니다. 이게 w x 플러스 b를 수식으로 표현한 거겠죠.
그리고 이렇게 하고 이제 색상을 지정을 하고 얘는 투명도죠.
여기서는 이제 얘는 쿨 원이니까 파란색에서 빨간색 이런 식으로 나타내는 값이에요.
이건 지정되어 있죠. 그래서 실행을 하게 되면 다음과 같은 형태의 이렇게 모델이 나옵니다.
出席人员 1 50:05 所以当您看到 x 0 时,现在是从 1 到 2,然后 x 零和 x 1 也是如此。排列方式是我之前提到的。从 1 到 2,间隔为 0.25,后面从 2 到 6,间隔也是 0.25。然后将其转换为二维形式,计算 y h。这里我们不使用函数,而是使用之前找到的最终参数。插入权重,将 w 0 乘以 x 0,然后是最终的 w 1 乘以 x 1。再加上偏置。这就是用 w x 加 b 的公式表示。然后设置颜色,这是透明度。这里是酷色原,从蓝色到红色这样表示的值。这是已经指定的。执行后,模型就会呈现这种形式。
Attendees 1 51:22
그리고 방금 위에서는 이제 저희가 코스트 펑션을 직접 계산을 했는데 그 사이킨론에서 직접 mse를 계산을 해 주는 그런 함수가 있어요.
그래서 저희가 직접 코스트 함수를 정의를 해도 되지만 이제 ms를 사용을 해서 이 민스퀘어 원료를 사용을 해서 계산을 할 수도 있습니다.
와 같은 경우에는 이제 아까 위에서 정의했던 프리딕트 함수를 사용을 하겠죠.
똑같이 엑스트레인 넣어주고 그리고 경사강법을 마친 가중치랑 편향을 넣어줄게요.
이렇게 하면 이제 y에 대한 예측 값이 나오겠죠. 그래서 이제 y에 대한 예측값 아 y에 대한 예측값 그리고 실제 값에 대한 차이를 이제 구하는 함수에 넣어주면 됩니다.
그래서 이렇게 실행을 해 주면 그냥 mse가 자동으로 계산이 됩니다.
보시면 744가 나오죠. 그래서 직접 만들어도 되고 아니면 이제 일반적으로 있는 MBS를 활용할 거면 다음과 같이 사이킨론에서 불러와서 사용을 해도 돼요.
그러면 선형 회기도 저희가 사이클론으로 사용을 할 수가 있겠죠.
出席人员 1 51:22 刚才在上面,我们直接计算了代价函数,但在 scikit-learn 中有直接计算 MSE 的函数。所以我们可以直接定义代价函数,也可以使用 MSE 均方误差来计算。在这种情况下,我们将使用之前定义的预测函数。同样地输入训练数据,然后插入梯度下降后的权重和偏置。这样就会得到 y 的预测值。然后将 y 的预测值与实际值的差异放入函数中。这样执行后,MSE 就会自动计算。可以看到结果是 744。可以自己计算,也可以使用 scikit-learn 中普遍存在的 MBS。这样我们就可以使用 scikit-learn 进行线性回归了。
Attendees 1 52:40
x랑 y 값은 다음과 같이 이제 RA로 저희가 만들어주고 여기서 이제 사이킬런에서 리니얼 리그레션을 불러올 수 있어요.
그러면 이제 방금 임포트한 리니어 리그레션을 가져오면 되겠죠.
여기다가 정의를 해줄 수 있어요. 그럼 lr를 불러오면 불러오면 되고 여기서 지금 저희가 학습 모델을 학습시킬 거니까 핀 메소드를 활용을 하면 되겠죠.
근데 이제 설명 회기에서 필요한 거는 x 랑 y 값이 필요하겠죠.
그래서 위에서 정의해 둔 x랑 y 값을 넣어주면 됩니다.
스트레이 이렇게 해서 실행을 해주면 이렇게 나와요.
요 아웃풋은 이제 콜랩을 쓰냐 지피터를 쓰냐 vs 코드를 쓰냐에 대해서 다 다르게 나오겠죠.
그다음에 이제 학습된 모델 파라미터를 확인을 해볼 거예요.
똑같이 하면 되겠죠. 그냥 프린트를 해주는데 여기서 보시면
与会者 1 52:40 x 和 y 值现在可以由我们作为 RA 创建,在这里可以从 scikit-learn 调用线性回归。那么现在可以导入刚才的线性回归。可以在这里定义。如果调用 lr,就可以了,在这里,由于我们将要训练学习模型,可以使用 fit 方法。但现在回归中需要的是 x 和 y 值。所以将之前定义的 x 和 y 值放入即可。像这样执行,就会出现这样的结果。这个输出取决于你是使用 Colab、Jupyter 还是 VS Code。接下来,我们将确认已训练的模型参数。同样的方法,只需打印,在这里可以看到
Attendees 1 53:52
근데 이제 저희가 불러올 값들이 이제 저희가 직접 계산한 값이 아니고 이 선형 회기 함수 자체에 내장되어 있는 값들이 있어요.
계산되어서 그래서 여기다가 코 이피전트 이렇게 하면 이제 가중치가 출력이 되고
与会者 1 53:52 但是现在我们调用的值并不是我们直接计算的,而是线性回归函数本身内置的一些值。已经被计算好了,所以在这里使用系数,这样就会输出权重
Attendees 1 54:16
여기다가 이제 절편을 넣어주면 평형이 출력이 되겠죠.
现在在这里放置剖面图,就可以输出平衡了。
Attendees 1 54:26
이렇게 해서 실행을 해주면 돼요.
这样执行就可以了。
Attendees 1 54:31
그러면 이제 사이클론에서 제공하는 이제 선정 회기를 통해서 계산된 값도 이렇게 나오겠죠.
那么现在通过气象模型提供的回归来计算的值也会这样出现。
Attendees 1 54:41
그리고 이번에는 이제 mse도 같이 추가를 해가지고 진행을 해볼게요.
여기도 아까 위에서 피팅을 통해서 함수를 학습을 시켰죠.
그 학습한 함수를 가지고 이제 프리딕트를 할 수가 있어요.
똑같이 아까 lr에다가 크레디트를 하면 되겠죠.
근데 이번에는 이제 예측할 거니까 예측 값에 사용될 이제 x를 줘야겠죠.
스트레 이렇게 해서 하면은 이제 실제 y 값이랑 y h을 구할 수가 있어 의 차이를 볼 수가 있는 yh이 나오겠죠.
그래서 이렇게 와 h을 구해주고 이제 사이키 라트에서 제공하는 ms에다가 넣어주면 똑같이 ms가 계산이 됩니다.
아까 위에서는 저희가 이제 선형 함수를 직접 만들었고 아래에서는 이제 사이캔런에서 제공을 하는 선형 위 함수를 사용했다는 점에서 차이가 있어요.
그다음에 이제 다음 회기도 할 수가 있고 또 정규화를 추가로 해가지고 좀 더 좋은 모델을 만들 수가 있겠죠.
这次我们将添加 MSE 并进行处理。就像之前通过拟合学习了函数一样,我们现在可以使用那个学习的函数进行预测。和之前一样,在 lr 中进行凭证。但这次是为了预测,所以需要提供用于预测的 x 值。如果这样做,就可以获得实际 y 值和预测的 yh 值的差异。因此,我们计算 yh 并将其放入 scikit-learn 提供的均方误差中,就可以计算 MSE。与之前我们直接创建线性函数不同,这里使用了 scikit-learn 提供的线性回归函数。接下来,我们还可以进行其他回归,并通过添加正则化来创建一个更好的模型。
Attendees 1 55:44
여기서 보시면 지금 이거는 x를 저희가 랜덤하게 만들 건데 그에 대한 실제 값을 나타내주는 그런 함수예요.
그래서 여기서 보면 이제 이거는 넌 파이에서 제공하는 코사인 함수고 이거는 넌 파이에는 이제 파이 값이겠죠.
그다음에 이제 랜덤 시드를 이제 고정을 해서 이제 몇 번 다른 사람이 계속해서 돌려도 이제 다른 시간대에 돌려도 동일한 결과가 나올 수 있도록 하는 거겠죠.
그리고 개수는 20개예요.
在这里你可以看到,我们将随机生成 x,并且有一个表示其实际值的函数。从这里可以看出,这是 NumPy 提供的余弦函数,这里是 NumPy 的π值。然后固定随机种子,以便即使在不同的时间段运行,也能得到相同的结果。数量是 20 个。
Attendees 1 56:19
이제 랜덤하게 이제 20개의 샘플을 만들어 가지고 소트를 해주고 여기서 보시면 얘는 위에서 보는 이 실제 값이죠.
위에서 계산한 실제 값에 이제 랜덤으로 값을 추가해 줍니다.
그다음에 이제 만든 x는 이제 쉐입을 바꿔주고 다음과 같이 출력을 해보면 이제 3개의 향이 다음과 같이 배열이 돼요.
나타내는 걸 확인할 수가 있습니다.
现在随机生成 20 个样本并进行排序,从这里可以看到,这是上面计算的实际值。然后在实际值上添加随机值。接下来,生成的 x 改变形状,如果按照以下方式输出,可以看到 3 个不同的数组排列。可以确认显示的结果。
Attendees 1 56:55
여기는 네 그래서 이제 이게 저희가 생성한 x 3개 그리고 그에 따른 실제 y 트루 값이 이렇게 만들어진 거죠.
그리고 이 만들어진 x랑 y 값을 똑같이 산정도로 표현을 할 수가 있어요.
이거는 이제 테두리 컬러인데 이제 파란색으로 지정을 할 거고 그리고 얘는 s는 사이즈의 약자입니다.
사이즈는 20으로 설정을 해볼 거예요. 그리고 x 라벨은 이제 x로 하고 y 라벨은 y로 해서 실행을 해보면 다음과 같이 나타납니다.
이게 화면이 좀 더 크니까 보이는데 이렇게 매치 컬러가 지정이 된 걸 확인할 수가 있어요.
안쪽에는 이제 약간 조금 덜 진한 원래 색깔을 지정하지 않고 3정도를 찍으면 나타내는 색깔이 있죠.
그다음에 이제 x를 아까 만들었던 x를 사용을 해가지고 선형 회기를 학습시켜 볼 겁니다.
그러면 이제 위에서 만들었던 걸 계속 쓰면은 거기에 이제 추가적으로 학습이 되겠죠.
그러니까 새로 정의를 해 줍니다.
参加者 1 56:55 这里是,所以现在这是我们生成的 x 3 个,以及相应的实际 y 真实值是这样创建的。然后,我们可以用完全相同的方式将这些创建的 x 和 y 值表示在散点图上。这是现在边框颜色,我将把它设置为蓝色,然后这里 s 是大小的缩写。我们将把大小设置为 20。然后 x 标签现在设为 x,y 标签设为 y,执行后会出现如下结果。因为屏幕更大,所以可以看到,可以确认匹配颜色已经指定。内部现在有稍微不那么深的原始颜色,如果绘制 3 个点,就会有表示的颜色。接下来,我们将使用之前创建的 x 来训练线性回归。那么现在,如果继续使用之前创建的内容,就会在此基础上进行额外的学习。所以我们将重新定义。
Attendees 1 58:01
새로 선형 회귀 함수를 정의를 해주고
参加者 1 58:01 重新定义线性回归函数
Attendees 1 58:07
그다음에 이제 피팅을 해서 학습을 시켜주겠죠. x랑 y 그다음에 이거는 산정도를 또 나타내볼 거고 이게 원래 위에서 방금 위에서 봤던 이 산정도 그래프를 그대로 다시 한 번 더 가져온 거예요.
그다음에 이제 예측 값에 대한 이제 그래프도 추가를 해주는 거겠죠.
그러면 PT
然后接下来将进行拟合并进行学习。对于 x 和 y,接下来还将显示散点图。这是刚才上面看到的散点图图表,原封不动地再次带过来。然后还会添加预测值的图表。这样就可以了。
Attendees 1 58:46
그리고 컬러는 아래서 보시면 빨간색이죠. 그래서 r로 지정을 해 줄게요.
여기 보시면 이제 여기에다가 학습한 이제 이 선형 회귀 함수에다가 저희가 프리젝트를 하기 위해서 새로 만든 테스트 데이터를 만든 거예요.
그쵸 랜덤하게 하지만 이제 어레인지 함수를 사용을 해가지고 약간 적당한 똑같은 간격을 가지고 있는 그런 예측 값을 가져와서 이제 차원을 바꿔준 다음에 그걸 이제 이 학습했던 이제 선유 계기 함수에다가 넣어주면 이제 결괏값이 나오게 되겠죠.
y 핵 값이 그래서 얘를 실행을 하게 되면은 다음과 같이 나옵니다.
颜色如你在下面看到的是红色。所以我将把它指定为 r。在这里你可以看到,我们为了进行项目,在已学习的线性回归函数上创建了新的测试数据。是的,虽然是随机的,但使用了 arrange 函数,获取了具有相当相同间隔的预测值,然后改变其维度,将其放入已学习的线性回归函数中,就会得到结果值。y 的预测值。因此,当执行时,结果如下所示。
Attendees 1 59:36
그다음에 이제 x를 활용을 해가지고 x 제곱 x 3 제곱 이렇게 피처를 저희가 만들 수도 있어요.
그거는 이제 사이킬런에서 기본으로 제공하는 이제 폴리노미얼 피처스를 활용해서 저희가 만들 수가 있습니다.
그래서 이제 차수가 10이죠. 디그리가 10이니까 차수가 10인 이제 x를 만들어 볼 건데 똑같이 이제 인포트한 폴리노미 피처스를 가져오고 사수를 지정을 해주고 이제 편형을 넣을 거냐 말 거냐 여기에 대해서 이제 가 저희가 파라미터를 지정을 해 줄 수가 있어요.
이렇게 해서 이제 함수를 만들어 놓고 이제 피 트랜스폼을 하게 되면은 이제 x에 대해서 다음 특성이 생성이 되겠죠.
그래서 여기도 이제 처음에 3개만 가 가져와서 실행을 해보면 이렇게 3개의 값이 나온 걸 볼 수가 있습니다.
이 x는 아까 위에서 만들었던 그 x겠죠. 이거는 이렇게 봐주시고 넘어가면 됩니다.
그리고 이제 이걸로 다음 회기를 한번 해볼 건데 아까 똑같죠.
接下来,我们可以利用 x 来创建 x 的平方、x 的三次方等特征。这可以通过使用 scikit-learn 中默认提供的多项式特征来实现。所以现在是 10 次方。因为度为 10,所以我们将创建 10 次方的 x。同样地,导入多项式特征并指定程度,然后决定是否要包含偏置项,在这里我们可以指定参数。这样创建函数并进行特征转换后,就会为 x 生成新的特征。如果我们一开始只取 3 个来执行,你会看到生成了 3 个值。这个 x 就是之前创建的那个 x。请这样理解并继续。然后我们将用它来进行回归,和之前一样。
Attendees 1 1:00:37
여기서 보시면 x w는 x 제로는 이제 w 제로랑 곱해지고 그리고 x1은 w 1이랑 곱해지고 이걸 이제 그 벡터를 사용해서 나타나게 되면은 이제 w x 이런 식으로 나타내겠죠.
그걸 풀어서 이렇게 작성을 한 거예요.
在这里你可以看到,x0 与 w0 相乘,x1 与 w1 相乘,当使用这个向量表示时,就会像是 w·x 这样表示。我们是这样展开并编写的。
Attendees 1 1:01:00
그리고 이제 코스트는 이제 유클리드 값을 계산을 해가지고 넣어주면 되겠죠.
그래서 여기도 이제 새로 학습을 할 거니까 새로 선형 외기 함수를 가져오는 거죠.
가져와서 정리를 해주고 이제 위에서 만들었던 다하닉스 폴리를 넣어주고 y 값은 똑같겠죠 이렇게 넣어주면 됩니다.
그러면 이것도 이제 산정도 그래프를 출력을 할 거예요.
그리고 똑같이 이제 테스트를 하기 위해서 아까랑 동일하게 x 테스트를 만들고 얘도 이제 트랜스폼 해가지고 다음 특성을 적용하게 되겠죠.
参会者 1 1:01:00 现在我们将计算欧几里得值的成本。所以在这里,我们将重新学习,引入一个新的线性外推函数。引入并整理它,然后将之前创建的多项式代入,y 值保持不变,就这样放入。这样我们也将绘制散点图。然后,为了进行测试,和之前一样,创建 x 测试,并将其转换以应用下一个特征。
Attendees 1 1:01:44
그래서 이제 엑스 테스트로부터 이제 예측한 값을 또 빨간색으로 표현을 아래 할 수가 있으니까 똑같이 플러을 찍어주면 되겠죠.
PLT 클라 그리고 엑스 테스트를 넣어주고 위에서 이제 저희가 피팅을 해놨죠.
이 피팅한 리그레션 함수를 가지고 여기다가 이제 이번에 프레디트로 사용을 해 주면 됩니다.
를 해주는데 이제 스트레인 테스트 값은
参会者 1 1:01:44 因此,现在我们可以用红色表示从 x 测试预测的值。同样,只需绘制点即可。使用 PLT 绘图,并输入 x 测试。我们已经在上面进行了拟合。现在使用这个拟合的回归函数在这里进行预测。进行预测,现在是应用在测试值上。
Attendees 1 1:02:19
클리 이렇게 해주고 또 색깔이 빨간색이니까 r로 지정을 해 줄게요.
이렇게 해서 실행을 하게 되면 아까 위에서랑 비슷하지만 이제 위에 빨간색으로 예측된 y가 추가된 그런 그래프가 나타난 것을 볼 수가 있어요.
그리고 여기다가 이제 정규화를 추가를 해가지고 똑같이 작성을 할 수가 있는데
与会者 1 1:02:19 我们这样设置,因为颜色是红色,所以我们将用 r 来指定。这样执行后,会出现一个类似之前的图表,但现在在上方添加了用红色预测的 y 值。然后在这里,我们可以添加正则化,并以相同的方式进行编写。
Attendees 1 1:02:54
이번에 이제 리지백이죠. 정교한 파라미터 알파는 이제 0.01로 진행을 할 겁니다.
여기도 이제 똑같이 하지만 이제 리지를 넣어주면 되죠.
알파 값은 0.02
与会者 1 1:02:54 现在是岭回归。精细的参数 alpha 这次将设为 0.01。这里也可以采用相同的方法,只需添加岭回归。alpha 值为 0.02。
Attendees 1 1:03:16
위에서는 이제 정규화 값이 없었으니까 그냥 션을 사용한 미니어 리그레션을 사용을 한 거고 이번에는 이제 리지 회기를 진행을 해볼 거예요.
똑같이 그냥 리지를 가져오면 되고 그다음에 피팅을 시켜주면 돼요.
근데 이제 얘 다항 특성을 가진 x에 대한 값이니까 스 폴리를 넣어주면 되겠죠.
그리고 y를 넣어주면 학습을 하게 됩니다. 얘도 똑같이 산정도 그래프고 똑같이 x 테스트 값이고 똑같이 이제 다음으로 폴리 도미 특성을 넣어준 거고 얘도 이제 엑스 테스트에 대해서 다시 출력을 하게 되면은 똑같죠.
PLT 로 x축에는 x 테스트를 넣고 y축에는 이제 학습한 이 지기로부터 예측된 스 테스트 클린 모뉴를 넣어서 결괏값을 확인할 수가 있겠죠.
색깔은 똑같이 빨간색입니다. 이렇게 해서 실행을 하게 되면은
在之前没有正则化值的情况下,我们使用了简单的线性回归。这次我们将进行岭回归。只需像之前一样导入岭回归,然后进行拟合即可。由于这是对具有多项式特征的 x 的值,因此我们需要添加多项式特征。然后输入 y 进行学习。与之前一样,我们可以绘制散点图,使用 x 测试值和添加了多项式特征的 x。如果再次输出 x 测试的结果,方法是相同的。使用 PLT,在 x 轴上放置 x 测试,在 y 轴上放置从学习的模型预测的 x 测试清洁模型,我们就可以确认结果。颜色仍然是红色。这样执行后
Attendees 1 1:04:30
위랑 조금 다른 양상을 볼 수가 있어요. 얘는 약간 너무 이 점들에 대해서 비하게 된 걸 볼 수가 있는데 저희가 이제 이 정규화를 추가를 해줬기 때문에 조금 더 정들고 조금 더 일반화된 그런 그래프를 저희가 확인을 할 수가 있습니다.
여기까지 이제 수업에서 진행한 내용이고요. 그다음에 이제 남은 시간 동안 퀴즈 풀어주시면 되는데 오늘 퀴즈는 이렇게 있습니다.
위에서부터 이제 설명을 하게 되면은 총 3개죠. 여기다 이제 보스턴 데이터셋을 사용을 해가지고 하면 되죠.
이것도 제가 같이 지 파일에 넣어드렸어요. 가져와 가지고 이제 특정 이제 값을 예측하는 모델을 사용하면 저희가 만들어 주시면 됩니다.
이제 이 x 값으로부터 y 값을 이제 예측하는 모델을 만들어주면 되겠죠.
경사 공법을 사용을 해가지고 여기서 보시면 조건들이 적혀 있습니다.
코스트가 어떻게 변하는지 MSA를 계산을 하라.
그래프를 출력을 해봐라. 그래서 여기서 보시면 이렇게 데이터를 불러오고 데이터가 이렇게 생겼죠.
我们可以看到与之前略有不同的情况。可以看出这些点变得有些过于拟合,但由于我们添加了正则化,我们可以确认一个更加平滑、更加泛化的图形。这就是课程中进行的内容。接下来,在剩余的时间里,请解答今天的测验。测验如下:从上面开始说明,总共有 3 个。可以使用波士顿数据集。我已经将相关文件放入了文件中。获取数据后,创建一个可以预测特定值的模型。从 x 值预测 y 值的模型。使用梯度法,如您在这里看到的条件。计算代价是如何变化的,计算 MSA,并绘制图形。如您所见,数据是这样加载的。
Attendees 1 1:05:53
그거에 대해서 출력을 그러면 이건 이제 데이터가 어떻게 분포되어 있는지 볼 수가 있어요.
그리고 여기 이제 빈 부분을 채워주시면 됩니다. 여기다가 이제 계산하는 부분을 저희가 작성을 해놨죠.
근데 이거는 이제 위에서 저희가 방금 진행했던 거라 이제 따라가면 아마 잘 하실 수 있으실 겁니다.
포스트 계산하고 그레디언트 계산하고 그 경사 갖고 진행을 하고 여기도 아까 했었죠.
어떻게 초기화를 하는지 그리고 하이퍼 파라미터도 어떻게 초기화하는지 했었고 그리고 여기도 똑같이 했어
与会者 1 1:05:53 如果这样输出,您就可以看到数据是如何分布的。然后在这里填写空白部分。我们已经在这里编写了计算部分。因为这是我们刚才进行的内容,所以按照这个步骤,您可能能够很好地完成。计算后置处理,计算梯度,使用这个梯度进行操作,这些我们之前也讲过。如何初始化,如何初始化超参数,以及在这里也是同样的操作
Attendees 1 1:06:32
이거 어떻게 됐지
与会者 1 1:06:32 这是怎么回事?
Attendees 1 1:06:37
여기 뒤에 있던 논은 삭제해 주셔도 됩니다. 사실 그렇게 크게 중요하진 않아요.
원래 얘만 넣어주면 되는 거니까 그리고 똑같이 출력 그래프를 통해서 이제 이터레이션에 대해서 코스트가 어떻게 변하는지 보여주시면 되고 사이킬런에서도 이제 다시 MSA를 가져와가지고 이번에 직접 MSA를 정의하지 않고 이미 있는 걸 사용을 해가지고 또 어떻게 하는지 나타내 주시면 됩니다.
이제 두 번째는 위에서는 이제 그냥 저희가 한번 선형 회귀 함수를 만들어보고 진행을 했고 여기서는 이제 사이킨 런을 통해서 그 안에 있는 이제 리니얼 리그레션 함수를 불러와가지고 진행을 해보는 방식입니다.
그래서 조금 더 컴팩트하죠. 왜냐하면 있는 걸 가져와서 쓰는 거니까 그래서 이렇게 동일하게 그래프가 출력이 되면 되고 그다음에는 이제 마지막에 배웠던 이제 다음 회기도 진행을 해 주시면 됩니다.
대신 이렇게 보시면 이제 x를 사용을 해가지고 저희가 다음 피처를 어떻게 만드는지 아까 보여드렸죠.
与会者 1 1:06:37 这里后面的论文可以删除。实际上并不是很重要。原本只需要放入这个就可以了。然后通过输出图表来展示迭代过程中成本是如何变化的,并且在 scikit-learn 中再次获取 MSA,这次不直接定义 MSA 而是使用已有的,并展示如何操作。接下来第二步是,之前我们自己创建了一个线性回归函数并进行了处理,这里是通过 scikit-learn 调用其中的线性回归函数来进行处理。所以会更加简洁,因为是直接使用现有的函数。这样输出相同的图表就可以了,然后进行我们之前学习的下一个回归。不过这次我们展示了如何使用 x 来创建新的特征。
Attendees 1 1:07:38
이번에는 디그리가 이에요. 그러면 2차 원까지만 있는 게 생성이 되겠죠.
아까는 10으로 했었어요. 저희가 디글리를 그렇게 해서 이제 두 개의 이제 x 값을 가진 그런 데이터를 만들어 가지고 다음 회기를 진행을 해 주시면 됩니다.
얘기도 이제 만든 다음에 사이클론에서 ms 불러와가지고 똑같이 플러 찍고 이 결과를 보여주시면 됩니다.
네 질문 있으시면 말씀해 주시면 되고요. 여기서도 보시면 이제 차이점은 아까는 이게 지금 이 파란색은 원래 그래프 이제 산정도를 찍으면 주어지는 색깔이고 테두리가 바뀌었잖아요.
아까 위에서 테두리는 진한 파란색을 했고 여기는 하얀색을 했다는 차이점이 있습니다.
그래서 그것만 유의해서 해 주시면 될 것 같아요. 질문 있으시면 해 주세요.
与会者 1 1:07:38 这次是关于度数。那么只会生成到二次方。之前我们是设置为 10。我们通过这个度数来创建具有两个 x 值的数据,然后进行下一个回归。创建完后,在 scikit-learn 中调用 MS 并绘制图表,展示结果。如果有问题可以随时提出。在这里你可以看到区别,蓝色是原始图表散点图的颜色,边框发生了变化。之前上面的边框是深蓝色,这里是白色,仅此而已。注意这一点就可以了。如有问题请提出。
clovanote.naver.com