\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{multicol}

\title{MAT1120: Hopfield-nettverk og billedgjenkjenning}
\author{Forelesningsnotater}
\date{\today}

\begin{document}
\maketitle

\section{Introduksjon}
Hopfield-nettverk er en type \emph{recurrent neural network} som kan lagre mønstre og gjenkjenne bilder.  
De brukes som assosiativ hukommelse. Et delvis forstyrret mønster konvergerer til nærmeste lagrede mønster.

\section{Struktur}
\begin{figure}[h!]
\centering
\begin{tikzpicture}[scale=1.2]
% Neuroner
\foreach \x in {0,2,4} 
    \foreach \y in {0,2,4}
        \node[circle,draw,fill=blue!20,minimum size=8mm] (n\x\y) at (\x,\y) {};
% Eksempel på koblinger
\draw[->] (n00) -- (n22);
\draw[->] (n22) -- (n04);
\draw[->] (n02) -- (n20);
\draw[->] (n20) -- (n42);
\draw[->] (n40) -- (n24);
\end{tikzpicture}
\caption{Hopfield-nettverk med fullkoblinger (noen eksempler vist).}
\end{figure}

\section{Læringsregel (Hebbian)}
For å lagre $p$ mønstre $\{\xi^\mu\}$:
\[
w_{ij} = \frac{1}{N} \sum_{\mu=1}^{p} \xi_i^\mu \xi_j^\mu, \quad i \neq j
\]

\section{Dynamikk}
\[
s_i(t+1) = \operatorname{sign}\Big(\sum_{j=1}^{N} w_{ij} s_j(t)\Big)
\]

\section{Energi-funksjon}
\[
E = -\frac{1}{2} \sum_{i\neq j} w_{ij} s_i s_j
\]

\begin{figure}[h!]
\centering
\begin{tikzpicture}[scale=1.5]
\draw[->] (-0.1,0) -- (6,0) node[right] {$s$};
\draw[->] (0,-0.1) -- (0,3) node[above] {$E$};
% Lokale minima
\draw[thick,blue] plot[smooth] coordinates {(0,2.5) (1,1) (2,2) (3,0.5) (4,2) (5,1.5)};
\filldraw[red] (1,1) circle (2pt) node[above right] {lagret mønster};
\filldraw[red] (3,0.5) circle (2pt) node[above right] {lagret mønster};
\end{tikzpicture}
\caption{Energi-landskap for Hopfield-nettverk. Minima = stabile mønstre.}
\end{figure}

\section{Billedgjenkjenning}
\subsection*{Eksempel: 5x5 bilde}
\[
\text{Original:} 
\begin{bmatrix}
1 & -1 & 1 & -1 & 1\\
-1 & 1 & -1 & 1 & -1\\
1 & -1 & 1 & -1 & 1\\
-1 & 1 & -1 & 1 & -1\\
1 & -1 & 1 & -1 & 1
\end{bmatrix}
\]

\[
\text{Delvis ødelagt:} 
\begin{bmatrix}
1 & -1 & 1 & 1 & 1\\
-1 & 1 & -1 & 1 & -1\\
1 & -1 & 1 & -1 & 1\\
-1 & 1 & -1 & -1 & -1\\
1 & -1 & 1 & -1 & 1
\end{bmatrix}
\]

\[
\text{Gjenopprettet etter iterasjon:} 
\begin{bmatrix}
1 & -1 & 1 & -1 & 1\\
-1 & 1 & -1 & 1 & -1\\
1 & -1 & 1 & -1 & 1\\
-1 & 1 & -1 & 1 & -1\\
1 & -1 & 1 & -1 & 1
\end{bmatrix}
\]

\section{Kapasitet}
- Maks antall mønstre som kan lagres uten feil: $p_{\max} \approx 0.138 N$  
- For $p > p_{\max}$ oppstår \emph{spøkelser} og feilkonvergens.

\section{Oppsummering}
- Hopfield-nettverk = assosiativ hukommelse.  
- Hebbian læring lagrer mønstre.  
- Nettverket konvergerer til lokale energiminima.  
- Brukes i billedgjenkjenning og mønstergjenkjenning.  

\end{document}
