전이학습 기법을 활용한 딥러닝 모델 맞춤형 훈련
번역가 | Zhu Xianzhong
Reviewer | Sun Shujuan
전이 학습은 학습되거나 사전 학습된 신경망에 적용되는 방법입니다. 메타 네트워크는 수백만 개의 데이터 포인트를 사용하여 훈련됩니다.
현재 이 기술의 가장 유명한 용도는 심층 신경망을 훈련하는 것입니다. 이 방법은 심층 신경망을 훈련하는 데 더 적은 데이터를 사용할 때 좋은 성능을 보여주기 때문입니다. 실제로 이 기술은 데이터 과학 분야에서도 유용합니다. 왜냐하면 대부분의 실제 데이터에는 일반적으로 강력한 딥 러닝 모델을 훈련하기 위한 수백만 개의 데이터 포인트가 없기 때문입니다.
현재 수백만 개의 데이터 포인트를 사용하여 훈련된 많은 모델이 이미 존재하며 이러한 모델은 최대 정확도로 복잡한 딥 러닝 신경망을 훈련하는 데 사용할 수 있습니다.
이 튜토리얼에서는 전이 학습 기술을 사용하여 심층 신경망을 훈련하는 방법의 전체 프로세스를 배우게 됩니다.
Keras 프로그램을 사용하여 전이 학습 구현
심층 신경망을 구축하거나 학습시키기 전에 전이 학습에 사용할 수 있는 옵션이 무엇인지, 프로젝트에 맞게 복잡한 심층 신경망을 학습하는 데 사용해야 하는 옵션이 무엇인지 파악해야 합니다.
Keras 애플리케이션은 예측, 특징 추출, 미세 조정에 사용할 수 있는 사전 훈련된 가중치를 제공하는 고급 딥 러닝 모델입니다. Keras 라이브러리에는 바로 사용할 수 있는 모델이 많이 내장되어 있으며 인기 있는 모델 중 일부는 다음과 같습니다.
- 사전 훈련된 가중치와 함께 사용할 수 있는 모델. 해당 모델에 대한 보다 구체적인 내용은 Keras 공식 홈페이지를 참고하시기 바랍니다.
- 이 기사에서는 전이 학습에서 MobileNet 모델
- 을 적용하는 방법을 알아봅니다.
- 딥 러닝 모델 훈련
딥 러닝 모델 구축 프로세스를 시작하려면 먼저 데이터를 준비해야 합니다. Kaggle이라는 웹사이트를 방문하면 수백만 개의 데이터 세트 중에서 올바른 데이터 세트를 쉽게 선택할 수 있습니다. 물론 딥 러닝이나 머신 러닝 모델을 구축하는 데 사용할 수 있는 데이터 세트를 제공하는 다른 웹사이트도 많이 있습니다.
하지만 이 글에서 사용할 데이터 세트는 Kaggle 웹사이트에서 제공하는미국 수화 숫자 데이터 세트
에서 가져온 것입니다.데이터 전처리
데이터세트를 다운로드하여 로컬 저장소에 저장한 후 이제 데이터 준비, 데이터를 기차 디렉터리로 분할, 유효한 디렉터리 및 테스트와 같은 데이터세트에 대한 일부 전처리를 수행할 차례입니다. 디렉토리, 경로 정의 및 교육 목적으로 배치 생성 등 데이터 세트를 다운로드하면 0부터 9까지의 데이터 디렉터리가 포함되며, 입력 이미지, 출력 이미지에 해당하는 하위 폴더 3개, CSV라는 폴더가 있습니다.다음으로 각 디렉터리에서 출력 이미지와 CSV 폴더를 삭제하고 입력 이미지 폴더의 내용을 기본 디렉터리로 옮긴 후 입력 이미지 폴더를 삭제합니다.
이제 데이터세트의 각 마스터 디렉터리에는 500개의 이미지가 있으며, 모두 보관하도록 선택할 수 있습니다. 그러나 이 기사에서는 데모 목적으로 각 디렉터리의 이미지 200개만 사용되었습니다. 마지막으로 데이터 세트의 구조는 아래와 같습니다.데이터 세트의 폴더 구조
데이터 세트 분할
이제 데이터 세트를 train, valid 및 test의 세 가지 하위 디렉터리로 분할하는 것부터 시작해 보겠습니다.
- train 디렉토리에는 학습 패턴 및 불규칙성에 대한 모델의 입력 데이터 역할을 하는 학습 데이터가 포함됩니다.
- 유효한 디렉터리에는 모델에 입력될 검증 데이터가 포함되며 모델에서 볼 수 있는 첫 번째 보이지 않는 데이터가 되어 최대 정확도를 달성하는 데 도움이 됩니다.
- 테스트 디렉터리에는 모델을 테스트하는 데 사용되는 테스트 데이터가 포함됩니다.
먼저 코드에서 추가로 사용될 라이브러리를 가져오겠습니다.
# 导入需要的库 import os import shutil import random
아래는 필요한 디렉터리를 생성하고 데이터를 특정 디렉터리로 이동하는 코드입니다.
#创建三个子目录:train、valid和test,并把数据组织到其下 os.chdir('D:SACHINJupyterHand Sign LanguageHand_Sign_Language_DL_ProjectAmerican-Sign-Language-Digits-Dataset') #如果目录不存在则创建相应的子目录 if os.path.isdir('train/0/') is False: os.mkdir('train') os.mkdir('valid') os.mkdir('test') for i in range(0, 10): #把0-9子目录移动到train子目录下 shutil.move(f'{i}', 'train') os.mkdir(f'valid/{i}') os.mkdir(f'test/{i}') #从valid子目录下取90个样本图像 valid_samples = random.sample(os.listdir(f'train/{i}'), 90) for j in valid_samples: #把样本图像从子目录train移动到valid子目录 shutil.move(f'train/{i}/{j}', f'valid/{i}') #从test子目录下取90个样本图像 test_samples = random.sample(os.listdir(f'train/{i}'), 10) for k in test_samples: #把样本图像从子目录train移动到test子目录 shutil.move(f'train/{i}/{k}', f'test/{i}') os.chdir('../..')
위 코드에서는 먼저 로컬 저장소의 데이터 세트에 해당하는 디렉터리를 변경한 다음 train/0 디렉터리가 이미 존재하는지 확인합니다. 그렇지 않은 경우 train, valid 및 test 하위 디렉터리를 각각 만듭니다.
그런 다음 0~9의 하위 디렉터리를 만들고 모든 데이터를 train 디렉터리로 이동한 다음 valid 및 test 하위 디렉터리 아래에 0~9의 하위 디렉터리를 만듭니다.
그런 다음 train 디렉터리 내의 하위 디렉터리 0~9를 반복하고 각 하위 디렉터리에서 무작위로 90개의 이미지 데이터를 가져와 유효한 디렉터리 내의 해당 하위 디렉터리로 이동합니다.
테스트 디렉토리 test도 마찬가지입니다.
【보충】 Python에서 고급 파일 작업을 수행하는 Shutil 모듈(한 디렉터리에서 다른 디렉터리로 파일이나 폴더를 수동으로 복사하거나 이동하는 것은 매우 고통스러운 일이 될 수 있습니다. 자세한 팁은 https://medium.com 기사를 참조하세요. /@geekpython/수행-고수준-파일-작업-in-python-shutil-모듈-dfd71b149d32).
각 디렉터리에 대한 경로 정의
필요한 디렉터리를 생성한 후 이제 train, valid 및 test라는 세 가지 하위 디렉터리에 대한 경로를 정의해야 합니다.
#为三个子目录train、valid和test分别指定路径 train_path = 'D:/SACHIN/Jupyter/Hand Sign Language/Hand_Sign_Language_DL_Project/American-Sign-Language-Digits-Dataset/train' valid_path = 'D:/SACHIN/Jupyter/Hand Sign Language/Hand_Sign_Language_DL_Project/American-Sign-Language-Digits-Dataset/valid' test_path = 'D:/SACHIN/Jupyter/Hand Sign Language/Hand_Sign_Language_DL_Project/American-Sign-Language-Digits-Dataset/test'
Preprocessing
사전 학습된 딥 러닝 모델에는 사전 처리된 데이터가 일부 필요하며 이는 교육에 매우 적합합니다. 따라서 데이터는 사전 학습된 모델에 필요한 형식이어야 합니다.
전처리를 적용하기 전에 TensorFlow와 해당 유틸리티를 가져와서 코드에서 추가로 사용하겠습니다.
#导入TensorFlow及其实用程序 import tensorflow as tf from tensorflow import keras from tensorflow.keras.layers import Dense, Activation from tensorflow.keras.optimizers import Adam from tensorflow.keras.metrics import categorical_crossentropy from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.preprocessing import image from tensorflow.keras.models import Model from tensorflow.keras.models import load_model
#创建训练、校验和测试图像的批次,并使用Mobilenet的预处理模型进行预处理 train_batches = ImageDataGenerator(preprocessing_function=tf.keras.applications.mobilenet.preprocess_input).flow_from_directory( directory=train_path, target_size=(224,224), batch_size=10, shuffle=True) valid_batches = ImageDataGenerator(preprocessing_function=tf.keras.applications.mobilenet.preprocess_input).flow_from_directory( directory=valid_path, target_size=(224,224), batch_size=10, shuffle=True) test_batches = ImageDataGenerator(preprocessing_function=tf.keras.applications.mobilenet.preprocess_input).flow_from_directory( directory=test_path, target_size=(224,224), batch_size=10, shuffle=False)
우리는 MobileNet 모델에서 제공하는 이미지를 전처리하는 preprocessing_function 매개변수를 사용하는 ImageDatagenerator를 사용했습니다.
다음으로, MobileNet 모델은 224x224 크기의 이미지에 대해 훈련되었기 때문에 훈련할 이미지의 디렉터리 및 크기에 대한 경로를 제공하는 flow_from_directory 함수를 호출합니다.
다음으로 배치 크기를 정의합니다. 한 번의 반복으로 처리할 수 있는 이미지 수를 정의한 다음 이미지 처리 순서를 무작위로 섞습니다. 여기서는 테스트 데이터가 훈련에 사용되지 않으므로 테스트 데이터의 이미지를 무작위로 섞지 않습니다.
Jupyter 노트북이나 Google Colab에서 위 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다.
위 코드의 출력
ImageDataGenerator의 일반적인 응용 시나리오는 데이터를 증대시키는 것입니다. 다음은 Keras 프레임워크에서 ImageDataGenerator를 사용하여 데이터 증대를 수행하는 방법에 대한 안내입니다.
모델 만들기훈련 및 검증 데이터를 모델에 맞추기 전에 딥 러닝 모델 MobileNet은 출력 레이어를 추가하고, 불필요한 레이어를 제거하고, 일부 레이어를 미세 조정을 위해 훈련할 수 없도록 만들어 더 나은 정확도를 달성해야 합니다.
다음 코드는 Keras에서 MobileNet 모델을 다운로드하여 mobile 변수에 저장합니다. 다음 코드 조각을 처음 실행할 때 인터넷에 연결되어 있어야 합니다.
mobile = tf.keras.applications.mobilenet.MobileNet()
如果您运行以下代码,那么您将看到模型的摘要信息,在其中你可以看到一系列神经网络层的输出信息。
mobile.summary()
现在,我们将在模型中添加以10为单位的全连接输出层(也称“稠密层”)——因为从0到9将有10个输出。此外,我们从MobileNet模型中删除了最后六个层。
# 删除最后6层并添加一个输出层 x = mobile.layers[-6].output output = Dense(units=10, activation='softmax')(x)
然后,我们将所有输入和输出层添加到模型中。
model = Model(inputs=mobile.input, outputs=output)
现在,我们将最后23层设置成不可训练的——其实这是一个相对随意的数字。一般来说,这一具体数字是通过多次试验和错误获得的。该代码的唯一目的是通过使某些层不可训练来提高精度。
#我们不会训练最后23层——这里的23是一个相对随意的数字 for layer in mobile.layers[:-23]: layer.trainable=False
如果您看到了微调模型的摘要输出,那么您将注意到与前面看到的原始摘要相比,不可训练参数和层的数量存在一些差异。
model.summary()
接下来,我们要编译名为Adam的优化器,选择学习率为0.0001,以及损失函数,还有衡量模型的准确性的度量参数。
model.compile(optimizer=Adam(learning_rate=0.0001), loss='categorical_crossentropy', metrics=['accuracy'])
现在是准备好模型并根据训练和验证数据来开始训练的时候了。在下面的代码中,我们提供了训练和验证数据以及训练的总体轮回数。详细信息只是为了显示准确性进度,在这里您可以指定一个数字参数值为0、1或者2。
# 运行共10个轮回(epochs) model.fit(x=train_batches, validation_data=valid_batches, epochs=10, verbose=2)
如果您运行上面的代码片断,那么您将看到训练数据丢失和准确性的轮回的每一步的输出内容。对于验证数据,您也能够看到这样的输出结果。
显示有精度值的训练轮回步数
存储模型
该模型现在已准备就绪,准确度得分为99%。现在请记住一件事:这个模型可能存在过度拟合,因此有可能对于给定数据集图像以外的图像表现不佳。
#检查模型是否存在;否则,保存模型 if os.path.isfile("D:/SACHIN/Models/Hand-Sign-Digit-Language/digit_model.h5") is False: model.save("D:/SACHIN/Models/Hand-Sign-Digit-Language/digit_model.h5")
上面的代码将检查是否已经有模型的副本。如果没有,则通过调用save函数在指定的路径中保存模型。
测试模型
至此,模型已经经过训练,可以用于识别图像了。本节将介绍加载模型和编写准备图像、预测结果以及显示和打印预测结果的函数。
在编写任何代码之前,需要导入一些将在代码中进一步使用的必要的库。
import numpy as np import matplotlib.pyplot as plt from PIL import Image
加载定制的模型
对图像的预测将使用上面使用迁移学习技术创建的模型进行。因此,我们首先需要加载该模型,以供后面使用。
my_model = load_model("D:/SACHIN/Models/Hand-Sign-Digit-Language/digit_model.h5")
在此,我们通过使用load_model函数,实现从指定路径加载模型,并将其存储在my_model变量中,以便在后面代码中进一步使用。
准备输入图像
在向模型提供任何用于预测或识别的图像之前,我们需要提供模型所需的格式。
def preprocess_img(img_path): open_img = image.load_img(img_path, target_size=(224, 224)) img_arr = image.img_to_array(open_img)/255.0 img_reshape = img_arr.reshape(1, 224,224,3) return img_reshape
首先,我们要定义一个获取图像路径的函数preprocess_img,然后使用image实用程序中的load_img函数加载该图像,并将目标大小设置为224x224。然后将该图像转换成一个数组,并将该数组除以255.0,这样就将图像的像素值转换为0和1,然后将图像数组重新调整为形状(224,224,3),最后返回转换形状后的图像。
编写预测函数
def predict_result(predict): pred = my_model.predict(predict) return np.argmax(pred[0], axis=-1)
这里,我们定义了一个函数predict_result,它接受predict参数,此参数基本上是一个预处理的图像。然后,我们调用模型的predict函数来预测结果。最后,从预测结果中返回最大值。
显示与预测图像
首先,我们将创建一个函数,它负责获取图像的路径,然后显示图像和预测结果。
#显示和预测图像的函数 def display_and_predict(img_path_input): display_img = Image.open(img_path_input) plt.imshow(display_img) plt.show() img = preprocess_img(img_path_input) pred = predict_result(img) print("Prediction: ", pred)
上面这个函数display_and_predict首先获取图像的路径并使用PIL库中的Image.open函数打开该图像,然后使用matplotlib库来显示图像,然后将图像传递给preprep_img函数以便输出预测结果,最后使用predict_result函数获得结果并最终打印。
img_input = input("Enter the path of an image: ") display_and_predict(img_input)
如果您运行上面的程序片断并输入数据集中图像的路径,那么您将得到所期望的输出。
预测结果示意图
请注意,到目前为止该模型是使用迁移学习技术成功创建的,而无需编写任何一系列神经网络层相关代码。
现在,这个模型可以用于开发能够进行图像识别的Web应用程序了。文章的最后所附链接处提供了如何将该模型应用到Flask应用程序中的完整实现源码。
结论
本文中我们介绍了使用预先训练的模型或迁移学习技术来制作一个定制的深度学习模型的过程。
到目前为止,您已经了解了创建一个完整的深度学习模型所涉及的每一步。归纳起来看,所使用的总体步骤包括:
- 准备数据集
- 预处理数据
- 创建模型
- 保存自定义模型
- 测试自定义模型
最后,您可以从GitHub上获取本文示例项目完整的源代码。
译者介绍
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。
原文标题:Trained A Custom Deep Learning Model Using A Transfer Learning Technique,作者:Sachin Pal
위 내용은 전이학습 기법을 활용한 딥러닝 모델 맞춤형 훈련의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기계 학습 및 데이터 과학 분야에서 모델 해석 가능성은 항상 연구자와 실무자의 초점이었습니다. 딥러닝, 앙상블 방법 등 복잡한 모델이 널리 적용되면서 모델의 의사결정 과정을 이해하는 것이 특히 중요해졌습니다. explainable AI|XAI는 모델의 투명성을 높여 머신러닝 모델에 대한 신뢰와 확신을 구축하는 데 도움이 됩니다. 모델 투명성을 향상시키는 것은 여러 복잡한 모델의 광범위한 사용은 물론 모델을 설명하는 데 사용되는 의사 결정 프로세스와 같은 방법을 통해 달성할 수 있습니다. 이러한 방법에는 기능 중요도 분석, 모델 예측 간격 추정, 로컬 해석 가능성 알고리즘 등이 포함됩니다. 특성 중요도 분석은 모델이 입력 특성에 미치는 영향 정도를 평가하여 모델의 의사결정 과정을 설명할 수 있습니다. 모델 예측 구간 추정

일반인의 관점에서 보면 기계 학습 모델은 입력 데이터를 예측된 출력에 매핑하는 수학적 함수입니다. 보다 구체적으로, 기계 학습 모델은 예측 출력과 실제 레이블 사이의 오류를 최소화하기 위해 훈련 데이터로부터 학습하여 모델 매개변수를 조정하는 수학적 함수입니다. 기계 학습에는 로지스틱 회귀 모델, 의사결정 트리 모델, 지원 벡터 머신 모델 등 다양한 모델이 있습니다. 각 모델에는 적용 가능한 데이터 유형과 문제 유형이 있습니다. 동시에, 서로 다른 모델 간에는 많은 공통점이 있거나 모델 발전을 위한 숨겨진 경로가 있습니다. 연결주의 퍼셉트론을 예로 들면, 퍼셉트론의 은닉층 수를 늘려 심층 신경망으로 변환할 수 있습니다. 퍼셉트론에 커널 함수를 추가하면 SVM으로 변환할 수 있다. 이 하나

1950년대에는 인공지능(AI)이 탄생했다. 그때 연구자들은 기계가 사고와 같은 인간과 유사한 작업을 수행할 수 있다는 것을 발견했습니다. 이후 1960년대에 미국 국방부는 인공 지능에 자금을 지원하고 추가 개발을 위해 실험실을 설립했습니다. 연구자들은 우주 탐사, 극한 환경에서의 생존 등 다양한 분야에서 인공지능의 응용 분야를 찾고 있습니다. 우주탐험은 지구를 넘어 우주 전체를 포괄하는 우주에 대한 연구이다. 우주는 지구와 조건이 다르기 때문에 극한 환경으로 분류됩니다. 우주에서 생존하려면 많은 요소를 고려해야 하며 예방 조치를 취해야 합니다. 과학자와 연구자들은 우주를 탐험하고 모든 것의 현재 상태를 이해하는 것이 우주가 어떻게 작동하는지 이해하고 잠재적인 환경 위기에 대비하는 데 도움이 될 수 있다고 믿습니다.

이 글에서는 학습 곡선을 통해 머신러닝 모델에서 과적합과 과소적합을 효과적으로 식별하는 방법을 소개합니다. 과소적합 및 과적합 1. 과적합 모델이 데이터에 대해 과도하게 훈련되어 데이터에서 노이즈를 학습하는 경우 모델이 과적합이라고 합니다. 과적합된 모델은 모든 예를 너무 완벽하게 학습하므로 보이지 않거나 새로운 예를 잘못 분류합니다. 과대적합 모델의 경우 완벽/거의 완벽에 가까운 훈련 세트 점수와 형편없는 검증 세트/테스트 점수를 얻게 됩니다. 약간 수정됨: "과적합의 원인: 복잡한 모델을 사용하여 간단한 문제를 해결하고 데이터에서 노이즈를 추출합니다. 훈련 세트로 사용되는 작은 데이터 세트는 모든 데이터를 올바르게 표현하지 못할 수 있기 때문입니다."

C++의 기계 학습 알고리즘이 직면하는 일반적인 과제에는 메모리 관리, 멀티스레딩, 성능 최적화 및 유지 관리 가능성이 포함됩니다. 솔루션에는 스마트 포인터, 최신 스레딩 라이브러리, SIMD 지침 및 타사 라이브러리 사용은 물론 코딩 스타일 지침 준수 및 자동화 도구 사용이 포함됩니다. 실제 사례에서는 Eigen 라이브러리를 사용하여 선형 회귀 알고리즘을 구현하고 메모리를 효과적으로 관리하며 고성능 행렬 연산을 사용하는 방법을 보여줍니다.

번역기 | 검토자: Li Rui | Chonglou 인공 지능(AI) 및 기계 학습(ML) 모델은 오늘날 점점 더 복잡해지고 있으며 이러한 모델에서 생성되는 출력은 이해관계자에게 설명할 수 없는 블랙박스입니다. XAI(Explainable AI)는 이해관계자가 이러한 모델의 작동 방식을 이해할 수 있도록 하고, 이러한 모델이 실제로 의사 결정을 내리는 방식을 이해하도록 하며, AI 시스템의 투명성, 이 문제를 해결하기 위한 신뢰 및 책임을 보장함으로써 이 문제를 해결하는 것을 목표로 합니다. 이 기사에서는 기본 원리를 설명하기 위해 다양한 설명 가능한 인공 지능(XAI) 기술을 살펴봅니다. 설명 가능한 AI가 중요한 몇 가지 이유 신뢰와 투명성: AI 시스템이 널리 수용되고 신뢰되려면 사용자가 의사 결정 방법을 이해해야 합니다.

편집자 |ScienceAI 질문 응답(QA) 데이터 세트는 자연어 처리(NLP) 연구를 촉진하는 데 중요한 역할을 합니다. 고품질 QA 데이터 세트는 모델을 미세 조정하는 데 사용될 수 있을 뿐만 아니라 LLM(대형 언어 모델)의 기능, 특히 과학적 지식을 이해하고 추론하는 능력을 효과적으로 평가하는 데에도 사용할 수 있습니다. 현재 의학, 화학, 생물학 및 기타 분야를 포괄하는 과학적인 QA 데이터 세트가 많이 있지만 이러한 데이터 세트에는 여전히 몇 가지 단점이 있습니다. 첫째, 데이터 형식이 비교적 단순하고 대부분이 객관식 질문이므로 평가하기 쉽지만 모델의 답변 선택 범위가 제한되고 모델의 과학적 질문 답변 능력을 완전히 테스트할 수 없습니다. 이에 비해 개방형 Q&A는

머신 러닝은 명시적으로 프로그래밍하지 않고도 컴퓨터가 데이터로부터 학습하고 능력을 향상시킬 수 있는 능력을 제공하는 인공 지능의 중요한 분야입니다. 머신러닝은 이미지 인식, 자연어 처리, 추천 시스템, 사기 탐지 등 다양한 분야에서 폭넓게 활용되며 우리의 삶의 방식을 변화시키고 있습니다. 기계 학습 분야에는 다양한 방법과 이론이 있으며, 그 중 가장 영향력 있는 5가지 방법을 "기계 학습의 5개 학교"라고 합니다. 5개 주요 학파는 상징학파, 연결주의 학파, 진화학파, 베이지안 학파, 유추학파이다. 1. 상징주의라고도 알려진 상징주의는 논리적 추론과 지식 표현을 위해 상징을 사용하는 것을 강조합니다. 이 사고 학교는 학습이 기존을 통한 역연역 과정이라고 믿습니다.
