# US 2021/0242888 A1 · Learning device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0242888 A1
- Document ID: US20210242888A1
- Status: Published application
- Kind: A1
- Application number: 17/005,270
- Filed: 2020-08-27
- Published: 2021-08-05
- Earliest claimed: 2020-01-30
- Assignees: Kioxia Corporation
- Applicants: Kioxia Corporation
- Inventors: Ryota YOSHIZAWA; Kenichiro FURUTA; Yuma YOSHINAGA; Osamu TORII; Tomoya KODAMA
- Web page: https://patentgrep.com/patent/US20210242888A1

## CPC

- H03M 13/1191: {Codes on graphs other than LDPC codes}
- H03M 13/2927: {Decoding strategies}
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/0499: Feedforward networks
- G06N 3/08: Learning methods
- G06N 3/084: Backpropagation, e.g. using gradient descent
- G06N 3/09: Supervised learning
- H03M 13/1102: {Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes}
- H03M 13/451: {using a set of candidate code words, e.g. ordered statistics decoding [OSD]}
- H03M 13/6597: {Implementations using analogue techniques for coding or decoding, e.g. analogue Viterbi decoder}
- G06N 3/042: Knowledge-based neural networks; Logical representations of neural networks
- G06N 5/022: Knowledge engineering; Knowledge acquisition
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

According to one embodiment, a learning device includes a noise generation unit, a decoding unit, a generation unit, and a learning unit. The noise generation unit outputs a second code word which corresponds to a first code word to which noise has been added. The decoding unit decodes the second code word and outputs a third code word. The generation unit generates learning data for learning a weight in message passing decoding in which the weight and a message to be transmitted are multiplied, based on whether or not decoding of the second code word into the third code word has been successful. The learning unit determines a value for the weight in the message passing decoding by using the learning data.

## Claims

### Claim 1

A learning device, comprising:
a noise generation unit configured to receive a first code word and output a second code word, the second code word being the first code word with noise added;
a decoding unit configured to decode the second code word and output a third code word;
a generation unit configured to generate learning data including the second code word for which the third code word matches the first code word, the learning data being for learning a weight for a message passing decoding in which a message to be transmitted is multiplied by the weight; and
a learning unit configured to receive the learning data and determine the weight for the message passing decoding using the learning data.

### Claim 2 (depends on 1)

The learning device according to claim 1, wherein
the learning data includes the first code word, the second code word, and a determination result indicating whether the first code word and the third code word coincide with each other, and
when the determination result indicates that the first code word and the third code word coincide with each other, the learning unit is configured to use the second code word as an input and the first code word as a correct answer in determining the weight.

### Claim 3 (depends on 1)

The learning device according to claim 1, wherein the generation unit is configured to generate the learning data including just the first code word and the second code word when the first code word and the third code word coincide with each other.

### Claim 4 (depends on 1)

The learning device according to claim 1, wherein the generation unit is configured to generate the learning data including the third code word and the second code word.

### Claim 5 (depends on 1)

The learning device according to claim 1, wherein
the generation unit is configured to generate the learning data including the first code word and the second code word when the first code word and the third code word coincide with each other, and
the generation unit is configured to generate the learning data including the third code word and a fourth code word obtained by converting the second code word when the first code word and the third code word do not coincide with each other.

### Claim 6 (depends on 1)

The learning device according to claim 1, wherein the message passing decoding is a belief-propagation algorithm in which the weight and the transmitted message are multiplied.

### Claim 7 (depends on 1)

The learning device according to claim 1, wherein
the message passing decoding is expressed by a neural network having the weight as a parameter, and
the learning unit determines the weight which is the parameter of the neural network.

### Claim 8 (depends on 1)

The learning device according to claim 1, wherein the decoding unit decodes the second code word through maximum a posteriori (MAP) decoding or ordered statistics decoding (OSD), and outputs the third code word.

### Claim 9 (depends on 1)

The learning device according to claim 1, further comprising:
an acquisition unit configured to acquire the first code word from a storage unit and supply the first code word to the noise addition unit.

### Claim 10 (depends on 1)

The learning device according to claim 1, further comprising:
an output control unit configured to receive the weight from the learning unit and output the weight to a decoder device.

### Claim 11

A learning device, comprising:
a processor connected to a memory unit, the processor being configured to:
receive a first code word and generate a second code word from the first code word, the second code word being the first code word with noise added;
decode the second code word and output a third code word as a decoding result; and
generate learning data including the second code word for which the third code word matches the first code word; and
determine a weight for a message passing decoding from the learning data, the weight being multiplied with a message transmitted in the message passage decoding.

### Claim 12 (depends on 11)

The learning device according to claim 11, wherein the learning data includes the first code word, the second code word, and a determination result indicating whether the first code word and the third code word coincide with each other.

### Claim 13 (depends on 11)

The learning device according to claim 11, wherein the learning data includes just the first code word and the second code word when the first code word and the third code word coincide with each other.

### Claim 14 (depends on 11)

The learning device according to claim 11, wherein learning data includes just the third code word and the second code word.

### Claim 15 (depends on 11)

The learning device according to claim 11, wherein the processor is further configured to:
manipulate a bit of the second code word when the third code word does not coincide with the first code and generate a fourth code word from the manipulated second code word, and
include the fourth code word in the learning data, when the fourth code word can be decoded, and the decoding result thereof coincides with the first code word.

### Claim 16 (depends on 11)

The learning device according to claim 11, wherein the first code word is acquired from the memory unit.

### Claim 17

A memory system, comprising:
a memory controller including:
a host interface for receiving data from a host device,
a memory interface for receiving data from a memory unit,
an error correction encoding/decoding unit for encoding and decoding data to be written to and read from the memory unit,
a data buffer for storing data to be written to the memory unit and data read from the memory unit, and
a learning device including a decoding unit, a generation unit configured to generate learning data, and a learning unit configured to receive the learning data and determine a weight for a message passing decoding using the learning data, wherein
the memory controller is configured to:
receive first data from the host device via the host interface,
encode the first data using the error correction encoding/decoding unit to generate a first code word,
store the first code word in the data buffer,
write the first code word to a first location in the memory unit via the memory interface,
read data from the first location of the memory unit via the memory interface, and
supply the read data to the decoding unit as a second code word;
the decoding unit is configured to output a decoding resulting of the second code word as a third code word to the generation unit;
the generation unit is configured to:
generate learning data including the second code word for which the corresponding third code word matches the first code word, and
supply the learning data to the learning unit; and
the learning unit is configured to determine a weight for a message passing decoding using the learning data.

### Claim 18 (depends on 17)

The memory system according to claim 17, wherein the message passing decoding corresponds to a belief-propagation algorithm in which the transmitted message is multiplied by the weight.

### Claim 19 (depends on 17)

The memory system according to claim 17, wherein the determined weight is supplied to the error correction encoding/decoding unit.

### Claim 20 (depends on 17)

The memory system according to claim 17, wherein the memory unit is NAND flash memory.
