Paper · 2018-11-10 · cs.CV
Breast Cancer Classification from Histopathological Images with Inception Recurrent Residual Convolutional Neural Network
IRRCNN is a CNN whose blocks combine inception-style multi-size branches, recurrent convolutional layers unrolled over time steps, and a residual add, followed by transition blocks and softmax. Trained with SGD on BreakHis and the 2015 BCC challenge data, it reports 97.95% image-level binary accuracy on BreakHis at 40x and 99.05% image-wise binary accuracy on BCC 2015. Author-reported.
Convolutional neural networkConvolutional recurrent network (CRNN)Data augmentationmedical-imaginghistopathologybreast-cancerimage-classificationrecurrent-convolution
AI-compiled by claude-haiku-5-5 on 2026-10-18, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
A pathologist decides whether a stained slice of breast tissue shows cancer by looking at it under a microscope, often at several zoom levels. The work is slow, and people do not always agree. This paper trains a neural network to make that call from the slide images.
The network is built from repeated blocks. Each block looks at its input through filters of two sizes running side by side, plus a pooled branch. Each filter is also looped over a few passes, so its output feeds back into itself, and the block adds its input back onto its output as a shortcut. Between blocks the image is shrunk and the features are pooled.
The authors test the network on two public collections of breast tissue images, sorting them as benign or malignant and, in a second setting, into finer categories. Their reported scores are higher than earlier published methods on the same collections. These scores come from the authors' own experiments, and the paper does not show that the result holds on other data.
TL;DR
- IRRCNN is a CNN whose core block (IRRU) merges inception-style branches built from recurrent convolutional layers, plus a residual add §3 fig. 2 eq. 1 eq. 3 eq. 4.
- It is applied to breast histopathology classification on BreakHis (benign or malignant, and eight subtypes) and on the BCC Classification Challenge 2015 dataset (normal, benign, in situ, invasive) §4 tab. 1 tab. 2.
- Author-reported: 97.95% ± 1.07 image-level binary accuracy on BreakHis at 40x tab. 4; 99.05% image-wise binary accuracy on BCC 2015 with resized and augmented samples tab. 7.
- No official code is public. Several protocol details conflict within the paper (see Pitfalls), so reproducing the exact numbers needs care.
Problem
Manual review of biopsy slides at several magnifications is time-consuming and can lead to inaccurate diagnoses §1. Earlier machine-learning pipelines (hand-crafted texture features with SVM or random forest) were mostly tested on small, often private sample sets §2. Deep networks need large labelled datasets, and annotating histopathology is expensive §1. Whole-slide images are much larger than typical photos (in some cases over 2000 × 2000 pixels), so the images are typically fed to the model as several patches [§4, Experimental setup].
Method
The model is a stack of IRRCNN blocks with transition units between them, followed by a fully connected layer and a softmax §3 §4.
Each IRRU (Inception Recurrent Residual Unit) takes its input through several inception-style branches. The branches apply recurrent convolutional layers (RCLs). The branch outputs are concatenated along the channel axis, and the block input is added to the result §3 fig. 2 eq. 3 eq. 4. The recurrent part is an RCL: at each time step, a feed-forward convolution of the current input is summed with a recurrent convolution of the previous step's output, plus a bias, then passed through ReLU §3 eq. 1 eq. 2. In the experiments, t = 2 means one feed-forward convolution followed by two RCLs §4 fig. 2.
Transition units handle down-sampling. The paper uses overlapping max pooling, a 1 × 1 convolution, and dropout of 0.5 after each convolution in the transition block §3.
The paper's own description of the network in the experiments reads: two convolution layers at the start, four IRRCNN blocks with transition blocks between them, a fully connected layer and softmax, with about 9.3 million parameters §4.
# Recurrent convolution layer (RCL) unrolled over time [eq. 1] [eq. 2]
# Input: x (B, C, H, W); state from step t-1 (B, K, H, W) or None at t=0
# Output: state at step t, (B, K, H, W)
def rcl_step(x, previous_state, t):
# Feed-forward convolution on the input at this step [eq. 1]
forward = conv_forward(x) # (B, K, H, W)
# Recurrent convolution on the previous output [eq. 1] [§3]
# Initial state at t = 0 is not stated; zero is assumed here
if previous_state is None:
recurrent = 0
else:
recurrent = conv_recurrent(previous_state)
# Sum, add bias, then ReLU [eq. 1] [eq. 2]
return relu(forward + recurrent + bias)# IRRU block: inception branches with RCLs, merged, plus a residual add
# [§3] [fig. 2] [eq. 3] [eq. 4]
# Input: x (B, C, H, W); output has the same shape (B, C, H, W) [§3]
def irru(x, time_steps):
# Branches with 1x1 and 3x3 kernels only, each with RCLs [§3] [fig. 2]
branch_1x1 = unroll_rcl(conv_1x1(x), time_steps)
branch_3x3 = unroll_rcl(conv_3x3(x), time_steps)
# Average pooling followed by a 1x1 convolution [eq. 3]
branch_pool = conv_1x1(avg_pool(x))
# Concatenate branch outputs along channels [eq. 3]
merged = concat_channels(branch_1x1, branch_3x3, branch_pool)
# Residual: add the block input to the merged output [eq. 4]
# Order of batch norm relative to this add is not stated; BN is
# applied after it here [§3]
return batch_norm(x + merged)# Forward pass of the classifier [§4] [§3] [eq. 5]
# Input: resized or center-cropped patch (B, 3, 128, 128) for BCC 2015 [§4]
def irrcnn_forward(images):
# Two convolution layers at the start [§4]
features = conv_stem(images)
# Four IRRCNN blocks, each followed by a transition unit [§4] [§3]
for stage in range(4):
features = irru_block(features)
features = transition(features)
# Fully connected layer, then softmax over the classes [§4] [eq. 5]
return softmax(fully_connected(flatten(features)))# Training of one trial [§4 Training Methodology]
# Loss function not named; the network outputs a softmax [eq. 5]
def train_trial(model, samples, labels, epochs):
# SGD with momentum 0.9; initial learning rate and batch size not stated
optimizer = sgd(momentum=0.9, learning_rate=not_stated)
# Epoch count: 50 per trial in the text; fig. 7 runs ~150 [§4] [fig. 7]
for epoch in range(epochs):
# Learning rate divided by 10 after 50 epochs [§4]
if epoch == 50:
optimizer.learning_rate /= 10
# Training uses the augmented samples [§4 Data Augmentation]
for batch in batches(augment(samples), not_stated):
loss = loss_fn(model(batch), labels_of(batch))
optimizer.update(loss)# Image-wise decision by winner-take-all over patches [§4]
# Input: 200 random 128 x 128 patches from one image
def image_label_wta(patches, model):
# Predicted class for each patch [§4]
votes = [argmax(model(patch)) for patch in patches]
# The class with the most patches wins; tie rule not stated [§4]
return most_common(votes)Patient-level and image-level scores use the definitions below. Patient score: correctly classified images over the patient's images, averaged over patients eq. 6 eq. 7 (see Pitfalls for the printed form). Image-level rate: correctly classified test samples over all test samples eq. 8.
Data augmentation (both datasets): sequential rotation by 40 degrees, width shift 0.2, height shift 0.2, shear 0.2, zoom range 0.2, horizontal flip and vertical flip §4 Data Augmentation. The paper also notes that some augmented samples contain added noise and reports a center-patch variant to avoid it §4 Data Augmentation fig. 5 fig. 6.
Hyperparameters
| Name | Value | Where | Notes |
|---|---|---|---|
| Optimizer | SGD | §4 Training Methodology | |
| Momentum | 0.9 | §4 Training Methodology | |
| Initial learning rate | not stated | §4 Training Methodology | |
| Learning-rate schedule | divided by 10 after 50 epochs | §4 Training Methodology | fig. 7 shows the drop near epoch 50 fig. 7 |
| Weight decay | "calculated based on the initial learning rate and number of epochs" | §4 Training Methodology | formula not stated |
| Epochs per trial | 50 | §4 Training Methodology | fig. 7 and fig. 9 plot about 150 epochs fig. 7 fig. 9 |
| Trials | 3 (training section); 5 (dataset section) | §4 Training Methodology §4 Datasets | conflicting; see Pitfalls |
| Batch size | not stated | ||
| Loss function | not named | softmax output eq. 5 | |
| Weight initialization | not stated | ||
| Activation | ReLU; ELU also tried | eq. 2 §3 | ELU results not reported separately |
| Batch normalization | in each IRRCNN block | §4 §3 | applied to IRRU outputs §3 |
| Dropout | 0.5 after each convolution in transition blocks | §3 | |
| Kernel sizes | 1 × 1 and 3 × 3 | §3 | 3 × 3 pooling in transition units |
| Pooling | overlapping max pooling, 3 × 3 patch, "2 × 2" second size | §3 | stride not clearly labelled |
| Time steps t | 2 in experiments (one feed-forward conv + two RCLs) | §4 fig. 2 | t = 3 shown in fig. 2 |
| Feature maps | 32 and 64 for the first three conv layers; 128, 256, 512, 1024 for IRRCNN blocks 1 to 4 | §4 | assignment to specific layers ambiguous |
| Parameters | about 9.3 million | §4 | |
| Input size (BCC 2015) | 128 × 128 patches or resized images | §4 | |
| Input size (BreakHis) | not stated | §4 | |
| Image magnification (BreakHis) | 40×, 100×, 200×, 400× | §4 Datasets tab. 1 | |
| Train/test split (BreakHis) | 70% / 30%, patient-disjoint | §4 Datasets | |
| Train/test split (BCC 2015) | 229 training images; remaining images for testing | §4 | 20 test images follow from 249 total |
| Augmented samples per input (BreakHis) | 21 | §4 Datasets | BCC: 20 per resized image or patch §4 |
| Patches per image (BCC) | 200 random 128 × 128 | §4 | winner-take-all for image-wise |
| Hardware | single GPU, NVIDIA GTX 980 Ti, 56 GB RAM | §4 Experimental setup | |
| Frameworks | Keras and TensorFlow | §4 Experimental setup |
Results
Author-reported. Setup: BreakHis (7909 images, 82 patients, four magnifications), with 70/30 patient-disjoint splits and five trials averaged §4 Datasets tab. 1. BCC 2015 (249 images, four classes, binary and four-class tasks) §4 tab. 2. Baselines are taken from the cited works in the paper's tables; the paper states the protocol of those works but its reference list is incomplete in the fetched PDF (see Pitfalls).
Table 3: BreakHis eight-class accuracy (classification rate, %, mean ± SD) tab. 3
| Method | Level | Year | 40× | 100× | 200× | 400× |
|---|---|---|---|---|---|---|
| CNN+patches [15] | Image | 2016 | 85.6 ± 4.8 | 83.5 ± 3.9 | 83.1 ± 1.9 | 80.8 ± 3.0 |
| LeNet + Aug [18] | Image | 2017 | 40.1 ± 7.1 | 37.5 ± 6.7 | 40.1 ± 3.4 | 38.2 ± 5.9 |
| AlexNet + Aug [18] | Image | 2017 | 70.1 ± 7.4 | 75.8 ± 5.4 | 73.6 ± 4.8 | 84.6 ± 1.8 |
| CSDCNN + Aug [18] | Image | 2017 | 92.8 ± 2.1 | 93.9 ± 1.9 | 93.7 ± 2.2 | 92.9 ± 2.7 |
| IRRCNN w/o Aug. | Image | 2018 | 95.69 ± 1.18 | 95.37 ± 1.29 | 95.61 ± 1.37 | 95.15 ± 1.24 |
| IRRCNN w/ Aug. | Image | 2018 | 97.09 ± 1.06 | 97.57 ± 0.89 | 97.29 ± 1.09 | 97.22 ± 1.22 |
| LeNet + Aug [18] | Patient | 2017 | 48.2 ± 4.5 | 47.6 ± 7.5 | 45.5 ± 3.2 | 45.2 ± 8.2 |
| AlexNet + Aug [18] | Patient | 2017 | 74.6 ± 7.6 | 73.8 ± 4.5 | 76.4 ± 7.4 | 79.2 ± 7.6 |
| CSDCNN + Aug [18] | Patient | 2017 | 94.1 ± 2.1 | 93.2 ± 1.4 | 94.7 ± 3.6 | 93.5 ± 2.7 |
| IRRCNN w/o Aug. | Patient | 2018 | 95.81 ± 1.81 | 94.44 ± 1.3 | 95.61 ± 2.9 | 94.32 ± 2.1 |
| IRRCNN + Aug. | Patient | 2018 | 96.76 ± 1.11 | 96.84 ± 1.13 | 96.67 ± 1.27 | 96.27 ± 0.87 |
Table 4: BreakHis binary (benign vs malignant) accuracy (%, mean ± SD) tab. 4
| Method | Level | Year | 40× | 100× | 200× | 400× |
|---|---|---|---|---|---|---|
| CNN + fusion (sum, product, max) [15] | Image | 2016 | 85.6 ± 4.8 | 83.5 ± 3.9 | 83.6 ± 1.9 | 80.8 ± 3.0 |
| AlexNet + Aug [18] | Image | 2017 | 85.6 ± 4.8 | 83.5 ± 3.9 | 83.1 ± 1.9 | 80.8 ± 3.0 |
| ASSVM [28] | Image | - | 94.97 | 93.62 | 94.54 | 94.42 |
| CSDCNN + Aug [18] | Image | 2017 | 95.80 ± 3.1 | 96.9 ± 1.9 | 96.7 ± 2.0 | 94.90 ± 2.8 |
| IRRCNN | Image | 2018 | 97.16 ± 1.37 | 96.84 ± 1.34 | 96.61 ± 1.31 | 95.78 ± 1.44 |
| IRRCNN + Aug | Image | 2018 | 97.95 ± 1.07 | 97.57 ± 1.05 | 97.32 ± 1.22 | 97.36 ± 1.02 |
| CNN + fusion (sum, product, max) [15] | Patient | 2016 | 90.0 ± 6.7 | 88.4 ± 4.8 | 84.6 ± 4.2 | 86.10 ± 6.2 |
| Bayramoglu et al. [14] | Patient | 2016 | 83.08 ± 2.08 | 83.17 ± 3.51 | 84.63 ± 2.72 | 82.10 ± 4.42 |
| Gupta et al. [13] | Patient | 2017 | 87.2 ± 3.74 | 88.22 ± 3.23 | 88.89 ± 2.51 | 85.82 ± 3.81 |
| CSDCNN + Aug [18] | Patient | 2017 | 92.8 ± 2.1 | 93.9 ± 1.9 | 93.7 ± 2.2 | 92.90 ± 2.7 |
| IRRCNN w/o Aug | Patient | 2018 | 96.69 ± 1.18 | 96.37 ± 1.29 | 96.27 ± 1.57 | 96.15 ± 1.61 |
| IRRCNN w/ Aug. | Patient | 2018 | 97.60 ± 1.17 | 97.65 ± 1.20 | 97.56 ± 1.07 | 97.62 ± 1.13 |
Figure 8 gives ROC curves for the eight-class BreakHis setting. The legend reports AUC 0.9891 (40×), 0.9880 (100×), 0.9868 (200×) and 0.9871 (400×) fig. 8. Figure 7 plots training and validation accuracy by epoch for the four magnifications; the paper says the 100× setting had the best training accuracy, and the 200× setting was very close fig. 7 §4.
The paper's own summary: 1.05 and 0.55 points above the best earlier image-level (96.9) and patient-level (97.1) binary figures reported in [18] §4 Analysis and Comparison tab. 4.
BCC 2015, patch-based (Table 5: binary, Table 6: four-class), author-reported tab. 5 tab. 6:
| Model | Setting | Year | Sens. | Spec. | Acc. | AUC |
|---|---|---|---|---|---|---|
| CNN [17] | Binary | 2017 | - | - | 0.776 | - |
| CNN+SVM [17] | Binary | 2017 | - | - | 0.769 | - |
| IRRCNN | CRP (center patch) | 2018 | 0.8732 | 0.8812 | 0.887 | 0.9239 |
| IRRCNN | CRP + Aug. | 2018 | 0.9452 | 0.9829 | 0.9751 | 0.9925 |
| IRRCNN | RP (random patches) | 2018 | 0.9307 | 0.9797 | 0.9676 | 0.9882 |
| CNN [17] | Four-class | 2017 | - | - | 0.667 | - |
| CNN+SVM [17] | Four-class | 2017 | 0.810 | - | 0.650 | - |
| IRRCNN | CRP | 2018 | 0.868 | 0.8733 | 0.8812 | 0.9169 |
| IRRCNN | CRP + Aug. | 2018 | 0.9371 | 0.9809 | 0.9711 | 0.9905 |
| IRRCNN | RP | 2018 | 0.9290 | 0.9752 | 0.9634 | 0.9824 |
BCC 2015, image-wise (Table 7: binary, Table 8: four-class), author-reported tab. 7 tab. 8:
| Model | Setting | Year | Sens. | Spec. | Acc. | AUC |
|---|---|---|---|---|---|---|
| CNN [17] | Binary | 2017 | - | - | 0.806 | - |
| CNN+SVM [17] | Binary | 2017 | - | - | 0.833 | - |
| IRRCNN | Resized (RZ) | 2018 | 0.878 | 0.926 | 0.884 | 0.912 |
| IRRCNN | RZ + Aug. | 2018 | 0.9831 | 0.9912 | 0.9905 | 0.9932 |
| IRRCNN | RP + WTA | 2018 | 1.00 | 1.00 | 1.00 | 1.00 |
| CNN [17] | Four-class | 2017 | - | - | 0.778 | - |
| CNN+SVM [17] | Four-class | 2017 | - | - | 0.778 | - |
| IRRCNN | RZ | 2018 | 0.889 | 0.916 | 0.9204 | 0.917 |
| IRRCNN | RZ + Aug. | 2018 | 0.9771 | 0.9889 | 0.9859 | 0.9905 |
| IRRCNN | RP + WTA | 2018 | 1.00 | 1.00 | 1.00 | 1.00 |
Computation time per sample for training or inference is not specified in the text tab. 9:
| Dataset | Method | Total time (s) | Number of samples | Time per sample (s) |
|---|---|---|---|---|
| BreakHis | Image based | 72.06 | 8732 | 0.08 (see Pitfalls) |
| BCC 2015 | Image based | 45.72 | 50 | 0.9144 |
| BCC 2015 | Patch based | 75.97 | 8742 | 0.008 |
Figure 9 plots training and validation accuracy for the four-class BCC setting under five input schemes: resized and augmented (RZ-AUG), center patch cropped and augmented (CRP-AUG), random patches (RP), resized (RZ), and center patch (CRP) fig. 9. The paper says the augmented schemes reach the highest accuracy §4 Results and Discussion.
Author-reported headline numbers on BCC 2015: 99.05% and 98.59% image-wise test accuracy for binary and four-class with resized and augmented samples; 100% with random patches and winner-take-all §4 Analysis and Comparison tab. 7 tab. 8. The text also reports 97.51% and 97.11% for augmented center patches in the binary and four-class cases §4 tab. 5 tab. 6.
Paper vs code
No official code.
Search, in order:
- The paper text contains no code link. The arXiv metadata record
(
raw/arxiv/1811.04241.json) has no comments field. - No project page is linked.
- GitHub search:
api.github.com/search/repositoriesfor "IRRCNN breast cancer" and "IRRCNN" returned one repository,ah01es/Breast-Cancer-Classification-with-IRRCNN-on-BreakHis-Dataset. Its owner is not an author, it is a from-scratch reimplementation, and its own description says the paper's official code is not public. Not used. - GitHub user search for the author "Zahangir Alom" found two accounts. The
zahangircserepositories contain no breast-cancer or IRRCNN code. Its closest name isR2U-Net-models, which names a different model and is not linked from this paper. Not used. TheZahangir115account has only a profile-configuration repository. Not used.
No discrepancies can be checked without the code.
Pitfalls
- No code, so no reference implementation. Several details that an implementer needs are missing from the text: initial learning rate, batch size, weight decay formula, loss function, weight initialization. Do not fill these from other papers; test a range and report the choice.
- Trial count conflicts. The dataset section says five trials are averaged §4 Datasets; the training section says three trials of 50 epochs §4 Training Methodology. Epoch counts also conflict: the text says 50 epochs per trial, while fig. 7 and fig. 9 plot about 150 fig. 7 fig. 9.
- Block count conflicts. The experiments section describes four IRRCNN blocks §4. The architecture section says "three IRRCNN units and one transition unit" for the implementation §3. Read this as a conflict, not a design choice.
- Feature-map assignment is ambiguous. "32 and 64 feature maps for the first three convolutional layers" does not say which layer gets which value §4.
- Branch structure is under-specified. Eq. 3 defines three branch outputs (1 × 1, an inception branch y(x) that the text does not give a kernel size for, and pooled 1 × 1). Fig. 2 shows chains of conv + ReLU with RCLs and does not give channel counts. The order of batch norm relative to the residual add is not stated.
- Residual dimensions. The text says the residual branch has the same number of feature maps as the IRRCNN unit §3. Make the branch output channel count match the input channel count.
- Activation. ELU was tried §3, but the results are not reported separately from ReLU.
- Patient-level equations are inverted as printed. Eq. 6 is written as P_s = N_ncp / N_ntp. The prose defines N_ncp as the number of the patient's images and N_ntp as the number of correctly classified images §4 Results. Read as printed, the ratio is inverted. The intended ratio (correct over total) is inferred from the definitions, not stated.
- Patient-level decision rule is not stated. How a patient score becomes a patient-level label is not described. Eq. 7 gives only the mean score.
- Augmentation counts conflict. The text says 21 augmented samples per input §4 Datasets and 20 for BCC §4. The BreakHis per-magnification totals are 41,895, 43,701, 42,273 and 38,220, which sum to 166,089. The paper states 166,068.
- BreakHis benign count conflicts with Table 1. The text gives 2440 benign and 5429 malignant samples §4 Datasets. The subclass rows of Table 1 sum to 2480 benign and 5429 malignant, which gives 7909 total tab. 1. The table is internally consistent; the text's benign count is not.
- Time per sample for BreakHis is inconsistent. 72.06 s over 8732 samples is about 0.0083 s, but Table 9 lists 0.08 tab. 9. The table does not say whether time covers training or inference.
- Small BCC test set. The 2015 dataset has 249 images. Training uses 229 §4, so the test set is about 20 images. Each image is about 5 percentage points of accuracy, and the 100% image-wise results come from that set. Patch-level test counts are not stated.
- Resize degrades detail. The authors note that resizing 2040 × 1536 images to 128 × 128 "significantly degrades" the information §4. Patches of 128 × 128 are chosen because nuclei radii of 3 to 11 pixels (1.26 to 4.62 µm) fit a patch §4.
- Augmentation noise. Some augmented samples contain added noise §4 Data Augmentation fig. 5. The paper evaluates a center-patch variant partly for this reason.
- Reference list is incomplete. The fetched PDF's reference list stops at [14], while the text cites up to [31]. Citations [15] to [31] (including the baseline results) cannot be checked against the PDF. The text cites "Inception-v4" as [2], but [2] in the list is a clinical pathology paper.
- Baseline numbers may be copied. Several baseline rows are identical or nearly identical across tables. For example, the CNN+fusion [15] image row in Table 4 has the same values as AlexNet+Aug [18] at 40×, 100× and 400× tab. 4. These baseline numbers are not verified against the cited works.
- Naming inconsistency. Fig. 8's legend uses "IR2CNN" while the rest of the paper uses IRRCNN fig. 8.
- Author-reported claims. The paper calls its results state of the art. Treat that as an author claim; the comparisons span different protocols and are not re-run.
Lineage
- Builds on: Inception-v4 (cited in the text as [2]), inception networks [21], residual networks [23] and RCNN [24]; the IRRCNN name is attributed to [19], [20]. None of these entries are linked from the paper, and most of them are not in the fetched PDF.
- Compared against: CNN with fusion [15], Bayramoglu et al. [14], Gupta et al. [13], AlexNet+Aug, LeNet+Aug, and CSDCNN+Aug [18], CNN and CNN+SVM [17], ASSVM [28].
- Superseded by: not known from content in this wiki.
Source and license
Adapted from “Breast Cancer Classification from Histopathological Images with Inception Recurrent Residual Convolutional Neural Network” by Md Zahangir Alom, Chris Yakopcic, Tarek M. Taha, Vijayan K. Asari (arXiv:1811.04241), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.