La diferencia entre el aprendizaje profundo y el aprendizaje automático

La diferencia entre el aprendizaje profundo y el aprendizaje automático

Contenido de este artículo:

1. Extracción de características

1.1 Aprendizaje automático

1.2 Aprendizaje profundo

1.3 Extracción de funciones de aprendizaje automático

1.4, extracción de funciones de aprendizaje profundo

1.5 Ejemplo de extracción de funciones de aprendizaje profundo

2. Requisitos de rendimiento informático y volumen de datos

3. Representante del algoritmo

3.1 Algoritmo bayesiano ingenuo

3.2 Árbol de decisión

4. Red neuronal


1. Extracción de características

 1.1 Aprendizaje automático

  El aprendizaje automático es una técnica de inteligencia artificial que, dado un conjunto de datos, aprende automáticamente patrones y utiliza los resultados del aprendizaje para predecir o tomar decisiones. Se basa en algoritmos matemáticos y estadísticos para construir modelos que permitan a las computadoras aprender de forma autónoma sin ser programadas explícitamente.

  El aprendizaje automático es una rama de la inteligencia artificial que se refiere a la capacidad de los sistemas informáticos para identificar y predecir patrones automáticamente mediante el análisis y el aprendizaje de grandes cantidades de datos.

  En términos simples, el aprendizaje automático es permitir que las computadoras aprendan de los datos para realizar tareas al nivel de la inteligencia humana.

  Estos son algunos conceptos de uso común en el aprendizaje automático:

  1. Conjunto de datos: se refiere a los datos utilizados para entrenar y probar algoritmos de aprendizaje automático.
  2. Características: Se refiere a la descripción del conjunto de datos, que puede estar en formato digital o de texto.
  3. Modelo: una implementación concreta de un algoritmo de aprendizaje automático que se puede entrenar en función de características y valores objetivo.
  4. Aprendizaje supervisado: predecir la salida de datos desconocidos entrenando la coincidencia de datos de entrada y resultados conocidos.
  5. Aprendizaje no supervisado: descubrimiento de patrones en datos no etiquetados para inferir la estructura y las relaciones de los datos.
  6. Aprendizaje profundo: una tecnología de aprendizaje automático basada en redes neuronales que puede simular la estructura de la red neuronal del cerebro humano y usar múltiples capas ocultas para aprender y clasificar datos.

  El aprendizaje automático se usa ampliamente en muchos campos, como el comercio electrónico, las finanzas, la atención médica, el procesamiento del lenguaje natural, la visión por computadora y los vehículos autónomos, entre otros. Los algoritmos comunes de aprendizaje automático incluyen árboles de decisión, regresión logística, máquinas de vectores de soporte, redes neuronales y bosques aleatorios.

  El paso de ingeniería de características del aprendizaje automático se realiza manualmente y requiere mucha experiencia en el dominio.

1.2 Aprendizaje profundo

   El aprendizaje profundo es un método de aprendizaje automático que utiliza redes neuronales compuestas de múltiples capas para simular y resolver problemas complejos. Su idea central es mejorar gradualmente la capacidad del modelo para representar y predecir datos a través del aprendizaje jerárquico y la extracción de características. En el aprendizaje profundo, las tecnologías centrales incluyen el algoritmo de retropropagación, la red neuronal convolucional, la red neuronal recurrente, la red de confrontación generativa, etc. El aprendizaje profundo tiene una amplia gama de escenarios de aplicación, como reconocimiento de imágenes, reconocimiento de voz, procesamiento de lenguaje natural, inteligencia artificial y otros campos.

  El aprendizaje profundo generalmente consta de múltiples capas, que a menudo combinan modelos más simples, pasando datos de una capa a otra para construir modelos más complejos. El modelo se obtiene automáticamente entrenando una gran cantidad de datos, sin necesidad de extracción manual de características.

  Los algoritmos de aprendizaje profundo intentan aprender características de alto nivel de los datos, lo cual es una parte única del aprendizaje profundo. Así, se reduce la tarea de desarrollar un nuevo extractor de características para cada problema. Es adecuado para campos de procesamiento de imágenes, voz y lenguaje natural en los que es difícil extraer características.

1.3 Extracción de funciones de aprendizaje automático

  La extracción de características de aprendizaje automático se refiere a la extracción de características útiles de datos sin procesar para el entrenamiento de algoritmos de aprendizaje automático y el establecimiento de modelos. Estas características pueden ser valores numéricos, texto, imágenes o incluso sonidos. A través de la extracción de características, puede ayudar a los algoritmos de aprendizaje automático a comprender mejor los datos y lograr un mejor análisis y clasificación de datos.

  El objetivo de la extracción de características es encontrar un conjunto de características que representen mejor los datos, y estas características pueden permitir que los algoritmos de aprendizaje automático aprendan información más significativa de los datos.

  El proceso de extracción de características incluye pasos como el preprocesamiento de datos, la selección de características, la extracción de características y la representación de características. En estos procesos se deben considerar factores como el tipo, cantidad, calidad y distribución de los datos, así como la aplicabilidad y demanda de algoritmos de aprendizaje automático.

1.4, extracción de funciones de aprendizaje profundo

  La extracción de características de aprendizaje profundo se refiere al proceso de usar el modelo de red neuronal profunda para aprender y extraer automáticamente características de los datos originales, de modo que los datos originales se puedan representar mejor como un conjunto de características abstractas de alto nivel, que pueden ser mejores. aplicado a clasificación y reconocimiento, detección y otras tareas.

  La extracción de funciones de aprendizaje profundo se usa ampliamente en visión por computadora, procesamiento de lenguaje natural, reconocimiento de voz y otros campos. Los métodos específicos de extracción de funciones de aprendizaje profundo incluyen la red neuronal convolucional (CNN), la red neuronal recurrente (RNN), etc. Mediante el uso de redes neuronales profundas para extraer características de los datos, la precisión y la solidez del modelo se pueden mejorar considerablemente.

  El aprendizaje profundo puede aprender características complejas de los datos de entrada al apilar varias capas de redes neuronales.

  En el aprendizaje profundo, cada capa de la red neuronal se puede considerar como un mapeo de datos de entrada, y la salida de cada capa se puede usar como entrada de la siguiente capa. Al apilar continuamente múltiples capas de redes neuronales y entrenar los pesos, se pueden extraer gradualmente características más complejas para lograr una clasificación y predicción más precisas.

1.5 Ejemplo de extracción de funciones de aprendizaje profundo

  El siguiente es un modelo de aprendizaje profundo implementado con Keras para clasificar dígitos escritos a mano.

  El modelo contiene dos capas convolucionales y dos capas totalmente conectadas, que pueden aprender automáticamente a extraer las características de los dígitos escritos a mano y clasificarlos como uno de los dígitos del 0 al 9. 

import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
from keras.utils import np_utils

# Cargar el conjunto de datos MNIST y preprocesarlo 

# 加载MNIST数据集并进行预处理
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32') / 255
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32') / 255
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)

# Construya un modelo de aprendizaje profundo 

# 构建深度学习模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

# Compilar el modelo 

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# entrenar el modelo y evaluar el rendimiento

# 训练模型并评估性能
model.fit(X_train, y_train, epochs=10, batch_size=32, verbose=1)
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

  En este ejemplo, usamos capas convolucionales y de agrupación máxima para extraer características visuales de dígitos escritos a mano, que luego se transformaron en predicciones de etiquetas de dígitos a través de capas completamente conectadas. Al entrenar los pesos a través del algoritmo de retropropagación, podemos dejar que el modelo aprenda automáticamente el proceso de extracción de características, para lograr una clasificación más eficiente y precisa.

2. Requisitos de rendimiento informático y volumen de datos

  El tiempo de ejecución requerido por el aprendizaje automático es mucho menor que el del aprendizaje profundo. Los parámetros del aprendizaje profundo suelen ser muy grandes y los parámetros deben entrenarse a través de múltiples optimizaciones de una gran cantidad de datos.

Primero, el aprendizaje profundo requiere un gran conjunto de datos de entrenamiento.
En segundo lugar, entrenar una red neuronal profunda requiere mucha potencia informática.

Puede llevar días, o incluso semanas, entrenar una red profunda utilizando un conjunto de datos de millones de imágenes.

Así que el aprendizaje profundo en general.
1. Se requiere un potente servidor GPU para el cálculo.
2. Servicios de predicción y capacitación distribuidos totalmente administrados, como la plataforma de aprendizaje automático en la nube TensorFlow de Google.

3. Representante del algoritmo

  Aprendizaje automático: Naive Bayes, árboles de decisión y más

3.1 Algoritmo bayesiano ingenuo

  El algoritmo Naive Bayesian es un algoritmo de clasificación basado en el teorema bayesiano y la suposición de independencia de las condiciones de las características. El teorema de Bayes es una teoría de probabilidad que describe la probabilidad de que ocurra otro evento dadas ciertas condiciones.

  El algoritmo Naive Bayesian asume que todas las funciones son independientes entre sí, es decir, cada variable de función no tiene nada que ver con otras variables de funciones. Basado en esta suposición, el algoritmo Naive Bayes puede predecir la categoría de etiqueta de nuevos datos al observar el conjunto de datos ya etiquetado.

  Los algoritmos de Naive Bayes se usan comúnmente en aplicaciones como la clasificación de texto, el filtrado de correo no deseado y el análisis de sentimientos.

  El siguiente es un código de muestra para implementar el modelo de algoritmo Naive Bayes usando Python:

import numpy as np

class NaiveBayes:
    def __init__(self, n_classes):
        self.n_classes = n_classes
        self.priors = None
        self.posteriors = None
    
    def fit(self, X, y):
        n_samples, n_features = X.shape
        self.priors = np.zeros(self.n_classes)
        self.posteriors = np.zeros((self.n_classes, n_features))
        for c in range(self.n_classes):
            X_c = X[y == c]
            self.priors[c] = len(X_c) / n_samples
            self.posteriors[c] = (X_c.sum(axis=0) + 1) / (len(X_c) + 1)
    
    def predict(self, X):
        y_pred = []
        for x in X:
            posteriors = []
            for c in range(self.n_classes):
                prior = np.log(self.priors[c])
                likelihood = np.sum(np.log(self.posteriors[c]) * x)
                posterior = prior + likelihood
                posteriors.append(posterior)
            y_pred.append(np.argmax(posteriors))
        return y_pred

  Esta implementación utiliza el suavizado de Laplace para evitar problemas de probabilidad cero y convierte las probabilidades a forma logarítmica para evitar problemas de desbordamiento numérico. El método de ajuste se usa para entrenar el modelo Naive Bayesian, mientras que el método de predicción se usa para clasificar nuevas muestras.

3.2 Árbol de decisión

  El árbol de decisión es un modelo de clasificación y regresión basado en la estructura de árbol, que a menudo se usa en el campo de la minería de datos y el aprendizaje automático. Divide recursivamente el conjunto de datos y selecciona características continuamente hasta que finalmente se obtiene un árbol de decisión recursivo.

  El nodo del árbol de decisión representa una característica en el conjunto de datos, el borde representa el valor de esta característica y el nodo hoja representa el resultado de la clasificación o el resultado de la regresión.

  En el problema de clasificación, el árbol de decisión divide una muestra desde el nodo raíz hasta un nodo hoja específico, y la categoría del nodo hoja es la categoría de la muestra;

  En el problema de regresión, el árbol de decisión divide una muestra desde el nodo raíz hasta un nodo hoja específico, y el valor del nodo hoja es el valor predicho de la muestra.

  El árbol de decisión tiene las ventajas de una buena interpretabilidad, fácil de entender y usar, y se usa ampliamente en aplicaciones prácticas.

4. Red neuronal

  Una red neuronal es un programa informático que simula el funcionamiento del sistema nervioso del cerebro humano. Se compone de una gran cantidad de neuronas artificiales (neuronas biológicas simuladas) a través de un cierto método de conexión. A través del aprendizaje y el entrenamiento, puede identificar, clasificar, simular y predecir varias cosas. Tiene buena adaptabilidad y capacidades de mapeo no lineal. Es ampliamente utilizado en inteligencia artificial, reconocimiento de imágenes, procesamiento de lenguaje natural, reconocimiento de voz y otros campos.

  Las redes neuronales incluyen redes neuronales feedforward, redes neuronales recurrentes y otras estructuras, entre las cuales las redes neuronales feedforward son las más comunes.

  Código de muestra para red neuronal para implementar lógica y operación

  La red neuronal realiza la lógica y el funcionamiento.

  La operación lógica AND es una operación en la que el resultado es 1 cuando ambos números binarios son 1 y 0 en caso contrario.

  Las redes neuronales pueden implementar la lógica y las operaciones aprendiendo el mapeo entre la entrada y la salida de la lógica y las operaciones.

  El siguiente es un código de muestra para una red neuronal simple para implementar operaciones AND lógicas:

import numpy as np
# 输入数据和标签
x = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
y = np.array([[0], [0], [0], [1]])

# definir la red neuronal 

# 定义神经网络
class NeuralNetwork:
    def __init__(self):
        np.random.seed(1)
        self.weights = 2 * np.random.random((2, 1)) - 1

    def sigmoid(self, x):
        return 1 / (1 + np.exp(-x))

    def sigmoid_derivative(self, x):
        return x * (1 - x)

    def train(self, x, y, iterations):
        for i in range(iterations):
            output = self.predict(x)
            error = y - output
            adjustment = np.dot(x.T, error * self.sigmoid_derivative(output))
            self.weights += adjustment

    def predict(self, x):
        return self.sigmoid(np.dot(x, self.weights))

# entrenar la red neuronal

# 训练神经网络
neural_network = NeuralNetwork()
neural_network.train(x, y, 10000)

# predecir

# 预测
print(neural_network.predict(np.array([0, 0])))
print(neural_network.predict(np.array([0, 1])))
print(neural_network.predict(np.array([1, 0])))
print(neural_network.predict(np.array([1, 1])))

La salida es:

[0.5]
[0.2689864]
[0.2689864]
[0.11738518]

Dado que la red neuronal es un modelo basado en la probabilidad, los resultados de salida no son completamente precisos,

Pero se puede ver que cuando la entrada es (0, 0), (0, 1) y (1, 0), la salida es cercana a 0,

Cuando la entrada es (1, 1), la salida está cerca de 1, lo que es consistente con el resultado de la operación lógica AND.

             Lectura recomendada:

Cambiar el color de fondo de la foto (python+opencv) Doce categorías de gatos Humano digital virtual basado en modelo grande__instancia de ancla virtual

Computer Vision__Operaciones básicas de imagen (Mostrar, Leer, Guardar) Histograma (histograma de color, histograma en escala de grises) Ecualización de histograma (ajustar el brillo de la imagen, el contraste)

 Práctica de reconocimiento de voz (código python) (1)

 Conceptos básicos de inteligencia artificial

 Conceptos básicos de Computer Vision__Características de imagen

93d65dbd09604c4a8ed2c01df0eebc38.png

 Comprobación rápida de la pantalla de efectos de estilo de dibujo de matplotlib (28 tipos, todos)

074cd3c255224c5aa21ff18fdc25053c.png

Explicación detallada del ejemplo de Three.js ___ chica duende giratoria (con código completo y recursos) (1)

fe88b78e78694570bf2d850ce83b1f69.png

cb4b0d4015404390a7b673a2984d676a.png

Código fuente de dibujo de rosa multicapa tridimensional__Colección de código fuente de dibujo de Rose python

 Python visualización 3D (1)

 Mejore su trabajo: el método para crear una nube de palabras Word Cloud (basado en python, WordCloud, stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png

938bc5a8bb454a41bfe0d4185da845dc.jpeg

0a4256d5e96d4624bdca36433237080b.png

 Uso de la función Format() de python___Ejemplo detallado (1) (completo, muchos ejemplos)___Varios reemplazos de formato, impresión de alineación de formato

 Escriba romance con code__Collection (python, matplotlib, Matlab, java para dibujar corazones, rosas, rosas de efectos especiales frontales, corazones)

Colección de código fuente Python love (18 modelos)

dc8796ddccbf4aec98ac5d3e09001348.jpeg

0f09e73712d149ff90f0048a096596c6.png

40e8b4631e2b486bab2a4ebb5bc9f410.png

 Uso de la función Print() en Python___Ejemplos detallados (completos, muchos ejemplos)

 La colección completa de explicaciones detalladas de la función de Python y ejemplos de métodos (actualizando...)

 "Python List List Ejemplo completo Explicación detallada Serie (1)" Catálogo general de la serie __, concepto de lista

09e08f86f127431cbfdfe395aa2f8bc9.png

Celebra el Festival del Medio Otoño con código, ¿quieres probar un bocado de pastel de luna de tortuga pitón?

 directorio de ejercicios de python

03ed644f9b1d411ba41c59e0a5bdcc61.png

daecd7067e7c45abb875fc7a1a469f23.png

17b403c4307c4141b8544d02f95ea06c.png

Dibujo de tortuga pitón de oso de fresa (versión de molino de viento) con código fuente

 ​Código de dibujo de tortuga pitón Strawberry Bear (versión rosa) con código fuente

 Dibujo de pitón de oso de fresa (versión Festival de primavera, versión de copo de nieve de cuenta regresiva de Navidad) con código fuente

4d9032c9cdf54f5f9193e45e4532898c.png

c5feeb25880d49c085b808bf4e041c86.png

 Buzz Lightyear python tortuga dibujo__con código fuente

Dibujo de tortuga Pikachu python turtle (versión power ball) con código fuente

80007dbf51944725bf9cf4cfc75c5a13.png

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg

1750390dd9da4b39938a23ab447c6fb6.jpeg

 Tutorial de instalación y configuración de Node.js (v19.1.0npm 8.19.3) vue.js (super detallado)

 Tabla de comparación de colores y colores (1) (hexadecimal, RGB, CMYK, HSV, nombres en chino e inglés)

Varias organizaciones autorizadas en abril de 2023____Clasificación de lenguajes de programación__Estado salarial

aa17177aec9b4e5eb19b5d9675302de8.png

38266b5036414624875447abd5311e4d.png

6824ba7870344be68efb5c5f4e1dbbcf.png

 La pantalla del teléfono está rota____cómo exportar los datos del interior (18 métodos)

[CSDN Cloud IDE] Experiencia personal y sugerencias (incluidos tutoriales de funcionamiento ultradetallados) (python, dirección webGL)

 Verifique la ruta de instalación de jdk, realice la solución de coexistencia de múltiples java jdk en Windows y resuelva los caracteres ilegibles de la terminal después de instalar java19

​​

Tutorial de creación de proyectos Vue3 (basado en create-vue, vite, Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png

bba02a1c4617422c9fbccbf5325850d9.png

37d6aa3e03e241fa8db72ccdfb8f716b.png

La segunda parte de las bendiciones del Festival de Primavera de 2023: envíeles un conejo guardián, déjenlo calentar a cada uno de ustedes [html5 css3] dibujando y moviendo el conejito, carga genial, fuente especial

 Álbum de confesión único, original, hermoso y romántico del Día de San Valentín, (la copia está disponible) (html5, css3, svg) código de amor de confesión (4 juegos)

Explicación detallada serie de ejemplos SVG (1) (descripción general de svg, diferencia entre mapa de bits y gráficos vectoriales (diagrama), ejemplos de aplicación SVG)

5d409c8f397a45c986ca2af7b7e725c9.png

6176c4061c72430eb100750af6fc4d0e.png

1f53fb9c6e8b4482813326affe6a82ff.png

[Programming Life] Dibujo de tortuga Python de elementos de la Copa Mundial en Qatar (con código fuente), 5 efectos especiales frontales temáticos de la Copa Mundial (con código fuente) HTML+CSS+svg dibuja exquisitas luces intermitentes de colores Árbol de Navidad, cuenta regresiva de Año Nuevo en tiempo real HTML+CSS+Js (con código fuente)

 La primera parte de la Serie de Bendición del Festival de Primavera de 2023 (Parte 1) (linternas Kongming voladoras para orar por bendiciones, deseando a todos buena salud) (con código fuente completo y recursos para descarga gratuita)

fffa2098008b4dc68c00a172f67c538d.png

5218ac5338014f389c21bdf1bfa1c599.png

c6374d75c29942f2aa577ce9c5c2e12b.png

 Tomcat11, configuración de instalación de tomcat10 (entorno Windows) (gráficos detallados)

 Configuración del puerto Tomcat (detallada)

 Conjunto de resolución de problemas de flashback de inicio de Tomcat (ocho categorías en detalle)

Supongo que te gusta

Origin blog.csdn.net/weixin_69553582/article/details/131406297
Recomendado
Clasificación